以下情景:
Set-Content $healthStatusFileName "a 'r'n a"
$previousHealthStatus=$(Get-Content $healthStatusFileName )
$errorMessage = "a 'r'n a"
If ($previousHealthStatus -eq $errorMessage)
现在由于某种原因,if语句总是返回false,为什么?只有在字符串中有回车换行符时才会发生这种情况。 另外,在If之前执行此操作并没有帮助:
$previousHealthStatus = $previousHealthStatus -replace "'t|'n|'r",""
$errorMessage = $errorMessage -replace "'t|'n|'r",""
答案 0 :(得分:0)
Get-Content返回一个数组,因此您要将字符串与数组进行比较。使用
加入数组`r`n
所以你得到了相当于你的初始字符串。
Set-Content $healthStatusFileName "a `r`n a"
$previousHealthStatus=$(Get-Content $healthStatusFileName ) -join "`r`n"
$errorMessage = "a `r`n a"
($previousHealthStatus -eq $errorMessage)
结果是:
True