PowerShell Out-File 在字符之间输出额外的空格
PowerShell Out-File outputs extra spaces in between characters
我正在使用一个简单的脚本在日志文件中输出当前目录的路径:
(Get-Item .).FullName | out-file "C:\windows\system32\rcwm\rc.log" -append
这在大多数情况下都有效。然而,看似随机的追加会导致在输出字符串中的每个字符后添加空格。我的 rc.log
文件将如下所示:
C:\Users\root\Desktop22
C : \ U s e r s \ r o o t \ D e s k t o p \ 2 2 2 2
注意我两次输出相同的目录名,日志文件中的结果是不同的。
一旦发生这种情况,附加到日志文件中的每个后续字符串的字符之间都会有空格。
可能是什么问题?
一段时间后,我决定尝试更改 powershell 在我的日志文件中输出字符串的编码。
我仍然不明白 powershell 为什么或如何决定使用哪种编码,但最好 你 让 powershell 知道你想使用哪种编码:
(Get-Item .).FullName | out-file "C:\windows\system32\rcwm\rc.log" -append -Encoding UTF8
对我来说,UTF-8 似乎效果最好。
C:\Users\root\šč (UTF8)
C:\Users\root\?? (ASCII)
C : \ U s e r s \ r o o t \ a (UNICODE)
C : \ U s e r s \ r o o t \ a (UTF32)
C:\Users\root\šč\ő\~2\üē (UTF8)
编辑:
从那以后,我遇到了“chcp”命令(更改代码页)。 UTF-8 的代码是 65001。
欲了解更多信息,您可以查看此 .
我正在使用一个简单的脚本在日志文件中输出当前目录的路径:
(Get-Item .).FullName | out-file "C:\windows\system32\rcwm\rc.log" -append
这在大多数情况下都有效。然而,看似随机的追加会导致在输出字符串中的每个字符后添加空格。我的 rc.log
文件将如下所示:
C:\Users\root\Desktop22
C : \ U s e r s \ r o o t \ D e s k t o p \ 2 2 2 2
注意我两次输出相同的目录名,日志文件中的结果是不同的。
一旦发生这种情况,附加到日志文件中的每个后续字符串的字符之间都会有空格。
可能是什么问题?
一段时间后,我决定尝试更改 powershell 在我的日志文件中输出字符串的编码。
我仍然不明白 powershell 为什么或如何决定使用哪种编码,但最好 你 让 powershell 知道你想使用哪种编码:
(Get-Item .).FullName | out-file "C:\windows\system32\rcwm\rc.log" -append -Encoding UTF8
对我来说,UTF-8 似乎效果最好。
C:\Users\root\šč (UTF8)
C:\Users\root\?? (ASCII)
C : \ U s e r s \ r o o t \ a (UNICODE)
C : \ U s e r s \ r o o t \ a (UTF32)
C:\Users\root\šč\ő\~2\üē (UTF8)
编辑:
从那以后,我遇到了“chcp”命令(更改代码页)。 UTF-8 的代码是 65001。
欲了解更多信息,您可以查看此