默认情况下,当您将命令的输出重定向到文件或将其传递到PowerShell中的其他内容时,编码为UTF-16,这是无用的.我想把它改成UTF-8.
它可以通过替换>foo.txt语法来逐个进行,| out-file foo.txt -encoding utf8但是每次都必须重复这是很尴尬的.
在PowerShell中设置内容的持久方法是将它们放入\Users\me\Documents\WindowsPowerShell\profile.ps1; 我已经验证这个文件确实是在启动时执行的.
有人说输出编码可以设置,$PSDefaultParameterValues = @{'Out-File:Encoding' = 'utf8'}但我已经尝试过,它没有任何效果.
https://blogs.msdn.microsoft.com/powershell/2006/12/11/outputencoding-to-the-rescue/谈到$OutputEncoding乍一看似乎应该是相关的,但后来谈到输出被编码在ASCII中,这不是实际发生的事情.
如何设置PowerShell使用UTF-8?
我想使用重定向附加>>或写入>来写入txt文件,但是当我这样做时,我收到了奇怪的格式“ \ x00a \ x00p ...”。
我成功使用了set-content和add-content,为什么它们按预期运行,但>>和>重定向运算符却没有运行?
使用Powershell'cat'以及简单的python打印显示输出。
rocket_brain> new-item test.txt
rocket_brain> "appended using add-content" | add-content test.txt
rocket_brain> cat test.txt
appended using add-content
Run Code Online (Sandbox Code Playgroud)
但是如果我使用重定向附加>>
rocket_brain> "appended using redirect" >> test.txt
rocket_brain> cat test.txt
appended using add-content
a p p e n d e d u s i n g r e d i r e c t
Run Code Online (Sandbox Code Playgroud)
简单的python脚本:read_test.py
with open("test.txt", "r") as file: # open test.txt in readmode
data = file.readlines() # append each line to the …Run Code Online (Sandbox Code Playgroud) $logstring = Invoke-Command -ComputerName $filesServer -ScriptBlock {\n param(\n $logstring,\n $grp\n )\n\n $Klassenbuchordner = "KB " + $grp.Gruppe\n $Gruppenordner = $grp.Gruppe\n $share = $grp.Gruppe\n $path = "D:\\Gruppen\\$Gruppenordner"\n\n if ((Test-Path D:\\Dozenten\\01_Klassenb\xc3\xbccher\\$Klassenbuchordner) -eq $true)\n {$logstring += "Verzeichnis f\xc3\xbcr Klassenb\xc3\xbccher existiert bereits"}\n else {\n mkdir D:\\Dozenten\\01_Klassenb\xc3\xbccher\\$Klassenbuchordner\n $logstring += "Klassenbuchordner wurde erstellt!"\n }} -ArgumentList $logstring, $grp\nRun Code Online (Sandbox Code Playgroud)\n\n我的目标是测试目录是否存在并根据需要创建它。
\n\n问题是路径包含德文字母(元音变音),目标服务器无法正确识别这些字母。
\n\n例如,服务器收到路径"D:\\Dozent\\01_Klassenb\xc3\x83\xc2\xbccher"而不是预期的"D:\\Dozent\\01_Klassenb\xc3\xbccher".
如何强制使用正确的 UTF-8 编码?
\npowershell utf-8 character-encoding codepages invoke-command