在一堆文件中,我想将文件名以 1 开头的所有文件连接到一个名为 1.txt 的文本文件中。源文件的编码是 UTF16-LE,这也应该是目标文件的编码。但是使用我的 powershell 脚本(下面的代码)会生成一个带有缺陷特殊符号(变音符号等)的 UTF-8 文件
这是我的代码:
Powershell.exe cat Disc:\data\files\1\filename-1* > Path:\here\1.txt
我发现了几种使用 Get-Content 和 Out-File 的方法,但无法使这些命令适应我的通配符需求。据我了解,cat 是 get-content 的标准别名,所以我想知道为什么我不能用 get-content 替换 cat。此外,get-content 有一个 -Encoding CharSet 参数,但像这样更改我的代码:
Powershell.exe cat Disc:\data\files\1\filename-1* > Path:\here\1.txt -encode Unicode
(这是 UTF-16 格式小端字节序的字符集)没有改变任何东西。 BigEndianUnicode 或 UTF8 也没有。
感谢您的帮助!
最佳答案
使用重定向运算符 (>
) 时不能指定编码。请改用 Out-File
cmdlet:
Get-Content C:\path\to\input* | Out-File D:\path\to\output.txt -Encoding Unicode
关于windows - 与 Powershell 连接时的编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27225116/