在一堆文件中,我想将文件名以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都没有。
感谢您的帮助!
答案 0 :(得分:1)
使用重定向运算符(>
)时,无法指定编码。请改用Out-File
cmdlet:
Get-Content C:\path\to\input* | Out-File D:\path\to\output.txt -Encoding Unicode