我想检查所有驱动器号中是否有文件,将其复制到另一个驱动器,如果找到则停止搜索其他驱动器。
While (Test-Path D:\folder\1.txt)
{
Foreach ($dir in @("E:","F:","G:"))
{
IF (Test-Path $dir\folder\1.txt)
{
Copy-Item $dir\folder\1.txt D:\folder -Force
}
}
}
但脚本首先在E驱动器上找到1.txt,复制它,然后在F驱动器上找到1.txt并复制。如何在第一个驱动器上找到文件时停止?
答案 0 :(得分:1)
您可以使用break
关键字。你也不需要在这里使用while循环:
Foreach ($dir in @("E:","F:","G:"))
{
IF (Test-Path $dir\folder\1.txt)
{
Copy-Item $dir\folder\1.txt D:\folder -Force
break
}
}
答案 1 :(得分:0)
您需要一个条件来停止循环。在这种情况下,当文件D:\ folder \ 1.txt存在时,它看起来好像要停止。因此,当文件不存在时,条件为真。例如:
While (-not (Test-Path D:\folder\1.txt)) {
Foreach ($dir in @("E:","F:","G:")) {
IF (Test-Path $dir\folder\1.txt) {
Copy-Item $dir\folder\1.txt D:\folder -Force
}
}
}