繁体   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