延迟的foreach循环

时间:2018-01-22 20:21:59

标签: powershell foreach

我有一个脚本,它将.pak文件从server1移动到带有foreach循环的server2。我需要foreach循环来等待文件移动到复制之间。我想在循环中添加30秒的延迟。

$server1 = "C:\Users\Administrator\AppData\Local\Temp" ## current source folder
$server2 = "C:\Users\Administrator\AppData\Local\Temp\Target\" ## destination folder

foreach ($server1 in gci $server1 -Include *.pak -Recurse) {
    ## Move the files to the destination folder
    Move-Item -Path $server1.FullName -Destination $server2  
}

1 个答案:

答案 0 :(得分:0)

您可以做的最简单的事情是使用Start-Sleep命令:

foreach ($server1 in gci $server1 -include *.pak -recurse)
{ 
    ## Move the files to the destination folder
    Move-Item -path $server1.FullName -destination  $server2
    Start-Sleep -s 30
}

但是,您可能会发现,根据任意数量的变量(网络速度等),您还没有足够的等待。然后你需要等待更长时间或创建一个轮询某些条件为真的函数。

我认为Move-Item会阻止文件被复制?