我写了Do..Until
语句来检查文件是否存在。如果文件不存在,则等待几秒钟再次检查。
应该在文件出现时结束。我已经通过运行没有文件的脚本进行测试,然后在脚本运行时将其添加到文件夹中。
而不是结束,它继续无休止地循环。谁能看到我错过的东西?
$path = test-path "C:\Temp\test.txt"
do {
if (!($path)) {
Write-Host "Not here yet..."
Start-Sleep -s 3
}
} until($path)
Write-Host "Files here now"
Write-Host "Press any key to continue ..."
$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
答案 0 :(得分:2)
{<1}}语句在行
中进行评估Test-Path
之后变量$path = Test-Path "C:\Temp\test.txt"
包含评估的布尔结果。在您的条件下进行实际检查:
$path
或将其定义为您在条件中调用的函数:
$path = "C:\Temp\test.txt"
do {
if (-not (Test-Path $path)) {
Write-Host "Not here yet..."
Start-Sleep -s 3
}
} until (Test-Path $path)
答案 1 :(得分:1)
好的,在发布此消息后3分钟(以及挫折之前一小时!)发现它。)
我需要将变量INSIDE放在Do..Until语句中。像这样:
do{
$path = test-path "C:\Temp\test.txt"
if (!($path))
{Write-Host "Not here yet..."
start-sleep -s 3}
}
until($path)
Write-Host "Files here now"
Write-Host "Press any key to continue ..."
$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")