PowerShell 中有把字符串自动转换为字符串数组的倾向,所以很多获取字符串的 Cmdlet 都有 -Raw 参数,以便可以停止这个机制,例如 Get-Clipboard 和 Get-Content。
但是,原生命令没有 -Raw 参数可以发挥这种作用,那么怎么样直接获取原始字符串呢?
目前看来比较好的方案是-join [System.Environment]::NewLine[^1],除了有些冗长之外问题不大。
另外,可以使用Out-String,但是这个命令会在末尾追加换行符,所以严格来讲是不行的。(使用-NoNewLine 也不行,因为会将所有的换行都去掉)
[^1]: 例如 (python.exe "$PSSR/stdout.py") -join [System.Environment]::NewLine | Should -Be $RawString。