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
。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.