Windows 与Powershell连接时的编码问题

Windows 与Powershell连接时的编码问题,windows,powershell,encoding,concatenation,utf-16,Windows,Powershell,Encoding,Concatenation,Utf 16,在一堆文件中,我想将文件名以1开头的所有文件连接到一个名为1.txt的文本文件中。源文件的编码为UTF16-LE,这也应为目标文件的编码。但是使用我的powershell脚本(下面的代码)会生成一个带有缺陷特殊标志(Umlauts等)的UTF-8文件 这是我的代码: Powershell.exe cat Disc:\data\files\1\filename-1* > Path:\here\1.txt 我发现了几种使用Get Content和Out File的方法,但无法根据我的通配符

在一堆文件中,我想将文件名以1开头的所有文件连接到一个名为1.txt的文本文件中。源文件的编码为UTF16-LE,这也应为目标文件的编码。但是使用我的powershell脚本(下面的代码)会生成一个带有缺陷特殊标志(Umlauts等)的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有一个编码字符集参数,但更改我的代码如下:

Powershell.exe cat  Disc:\data\files\1\filename-1* > Path:\here\1.txt -encode Unicode
(这是UTF-16格式小端字节顺序的字符集)不会改变任何事情。BigEndianUnicode或UTF8也没有


谢谢你的帮助

使用重定向运算符(
)时,无法指定编码。请改用
Out文件
cmdlet:

Get-Content C:\path\to\input* | Out-File D:\path\to\output.txt -Encoding Unicode

谢谢-很高兴知道!但不知何故,您的代码并不能很好地工作。下面是我所做的:“Powershell.exe获取内容J:\path\Content\name1*-编码Unicode | Powershell.exe输出文件J:\newpath\1.txt-编码Unicode”我在管道之后尝试了使用或不使用Powershell.exe,但似乎是必要的。我只尝试了一种编码,就像你的代码一样。但我得到的唯一结果是一个空文件1。txt@Daniel在我的回答中,您在哪里看到了
Get-Content-Encoding Unicode
,或
powershell.exe
?该代码将从PowerShell提示符运行。如果你想从其他地方运行它(例如命令提示符),你需要像这样运行:
powershell.exe-command“&{Get Content…}”
@Daniel也许你可以提供一个你试图读取和保存的文本示例,这样我们就可以看到了。我用日语尝试了Ansgar的代码,效果很好。@AnsgarWiechers对不起,我想我已经提到我打算在批处理文件中使用代码;)像你说的那样编辑之后,它终于成功了,非常感谢。