簡體   English   中英

在Powershell中將X文件從一個文件夾移動到另一個文件夾

[英]Move X files from one folder to another in Powershell

我有一個包含75000個要處理文件的文件夾A。 我旁邊有4個文件夾(A,B,C,D),可以一次處理3000個文件。

我希望腳本從A提取3000個文件,然后將其放入B。然后,再將3000個文件放入C,然后是D,最后是E

下面是我到目前為止的代碼。 這需要10個文件並將它們移到B中,但是它只是永久地放置着,而沒有將任何文件放入C,D或E中。

有沒有辦法退出代碼的EnumerateFiles部分? 我只希望它找到的第一個X文件被移動,我不在乎A中有多少個文件。

任何想法?

$dirBase = "\\networkDir\A\"
$dirProc1 = "\\networkDir\B\"
$dirProc2 = "\\networkDir\C\"
$dirProc3 = "\\networkDir\D\"
$dirProc4 = "\\networkDir\E\"

cd $dirBase

$directoryInfo1 = Get-ChildItem $dirProc1 | Measure-Object
$directoryInfo2 = Get-ChildItem $dirProc2 | Measure-Object
$directoryInfo3 = Get-ChildItem $dirProc3 | Measure-Object
$directoryInfo4 = Get-ChildItem $dirProc4 | Measure-Object

if ($directoryInfo1.count -eq 0) {
    MoveFiles $dirBase $dirProc1
} 
if ($directoryInfo2.count -eq 0) {
    MoveFiles $dirBase $dirProc2
} 
if ($directoryInfo3.count -eq 0) {
    MoveFiles $dirBase $dirProc3
} 
if ($directoryInfo4.count -eq 0) {
    MoveFiles $dirBase $dirProc4
} 

function MoveFiles([string]$srcDir, [string]$dest)
{
    $FileLimit = 10    
    $Counter = 0

    [IO.Directory]::EnumerateFiles($srcDir) | Where-Object {$Counter -lt $FileLimit} | %{ 
    #Get-ChildItem $srcDir | Select-Object -first $FileLimit | %{ 

        Move-Item $_ -destination $dest
        $Counter++

    }
}
Get-ChildItem $dirProc1 | select -first 3000 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM