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