Powershell set-content 添加隐藏字符
Powershell set-content adding hidden characters
以下场景:
Set-Content $healthStatusFileName "a 'r'n a"
$previousHealthStatus=$(Get-Content $healthStatusFileName )
$errorMessage = "a 'r'n a"
If ($previousHealthStatus -eq $errorMessage)
现在由于某种原因 if 语句总是 return 为假,为什么?它仅在字符串中有回车 return 换行时发生。
此外,在 If 之前执行此操作也无济于事:
$previousHealthStatus = $previousHealthStatus -replace "'t|'n|'r",""
$errorMessage = $errorMessage -replace "'t|'n|'r",""
Get-Content returns 一个数组,因此您正在比较一个字符串和一个数组。用
加入数组
`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
以下场景:
Set-Content $healthStatusFileName "a 'r'n a"
$previousHealthStatus=$(Get-Content $healthStatusFileName )
$errorMessage = "a 'r'n a"
If ($previousHealthStatus -eq $errorMessage)
现在由于某种原因 if 语句总是 return 为假,为什么?它仅在字符串中有回车 return 换行时发生。 此外,在 If 之前执行此操作也无济于事:
$previousHealthStatus = $previousHealthStatus -replace "'t|'n|'r",""
$errorMessage = $errorMessage -replace "'t|'n|'r",""
Get-Content returns 一个数组,因此您正在比较一个字符串和一个数组。用
加入数组`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