gpt4 book ai didi

powershell - 仅当条件为真时,Powershell循环

转载 作者:行者123 更新时间:2023-12-03 00:49:26 25 4
gpt4 key购买 nike

一般而言,这对于编码来说是一个新手,所以我担心我会遗漏一些完全显而易见的东西。我希望我的程序检查文件。如果存在,则继续执行代码。如果尚未到达,请继续咀嚼给定的时间,或者直到显示文件为止。我的循环是独立运行的,因此当我仅在Powershell ISE中选择do-part时,它就可以运行。但是当我尝试在if语句中运行它时,什么也没发生。循环不会开始。

$exists= Test-Path $resultFile 
$a = 1

if ($exists -eq "False")
{
do
{
$a++
log "Now `$a is $a "
start-sleep -s ($a)
$exists= Test-Path $resultFile
write-host "exists = $exists"
}
while (($a -le 5) -and ($exists -ne "True"))
}

最佳答案

作为pointed out in comments,您的问题是您正在将 bool(boolean) 值与字符串“False”进行比较:

$exists -eq "False"

在PowerShell中,比较运算符从左到右评估参数,而左手参数的类型确定进行比较的类型。

由于左侧参数( $exists)的类型为 [bool]( bool(boolean) 值,可以是 $true$false),因此PowerShell也会尝试将右侧参数转换为 [bool]

PowerShell将任何非空字符串解释为$true ,因此该语句:
$exists -eq "False"

相当于
$exists -eq $true

这可能不是您想要的。

关于powershell - 仅当条件为真时,Powershell循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33757188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com