使用UFT16编码将powershell脚本输出重定向到文件

时间:2015-11-30 23:14:46

标签: powershell unicode utf-16

我需要从C ++应用程序运行powershell命令。此powershell命令需要使用UFT16编码将powershell脚本输出重定向到文件。

我运行以下命令,但out.txt不在UFT16中,但似乎是UTF8。

powershell.exe -File  myps.ps1 > out.txt

我也尝试了以下内容。但错误是“'out-file'不被识别为内部或外部命令可操作程序或批处理文件。”

powershell.exe -File myps.ps1 | out-file "enctest.txt" -encoding unicode

也许应该使用-Command?怎么做?

1 个答案:

答案 0 :(得分:1)

正如您所知,Out-File是一个PowerShell cmdlet,因此在流程参数的上下文中没有意义(如果您尝试启动powershell.exe为直接新进程),cmd.exe(调用system()调用时的默认shell)也没有意义。

  

也许应该使用" -Command"?怎么做?

绝对!

这样的事情应该做:

powershell.exe -Command "& C:\path\to\my.ps1 | Out-File enctest.txt -Encoding unicode"

>运算符也适用于-Command,因为输出重定向编码默认为UTF16LE(至少在 PowerShell内部):

powershell.exe -Command "& C:\path\to\my.ps1 > enctest.txt"