Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 在Powershell中将X文件从一个文件夹移动到另一个文件夹_Windows_File_Powershell - Fatal编程技术网

Windows 在Powershell中将X文件从一个文件夹移动到另一个文件夹

Windows 在Powershell中将X文件从一个文件夹移动到另一个文件夹,windows,file,powershell,Windows,File,Powershell,我有一个文件夹a,其中有75000个文件要处理。我有4个文件夹(A、B、C、D)在旁边,一次可以处理3000个文件 我想要一个脚本,从a中取出3000个文件,放到B中。然后再取出3000个文件,放到C中,然后是D,最后是E 下面是我到目前为止的代码。这需要10个文件并将它们移动到B中,但它只是永久地保存,而不会将任何文件放入C、D或E中 有没有办法退出代码的EnumerateFiles部分?我只想移动它找到的第一个X文件,我不关心一个文件中有多少文件 有什么想法吗 $dirBase = "\\n

我有一个文件夹a,其中有75000个文件要处理。我有4个文件夹(A、B、C、D)在旁边,一次可以处理3000个文件

我想要一个脚本,从a中取出3000个文件,放到B中。然后再取出3000个文件,放到C中,然后是D,最后是E

下面是我到目前为止的代码。这需要10个文件并将它们移动到B中,但它只是永久地保存,而不会将任何文件放入C、D或E中

有没有办法退出代码的EnumerateFiles部分?我只想移动它找到的第一个X文件,我不关心一个文件中有多少文件

有什么想法吗

$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++

    }
}

我只用了10个文件就试过了。。。它仍然冻结了很长时间(由于文件夹中有70000个文件),那么
Get ChildItem$dirProc1-name
?这个命令是否结束?[IO.Directory]::枚举文件($srcDir)?
Get-ChildItem $dirProc1 | select -first 3000