我的问题是使用PowerShell在管道中导出输出文件。
我在任务计划程序中有一个带有PowerShell脚本的任务,但是我的带有字符集的输出文件(newtest.txt)在PowerShell和命令行中是不同的。
sqlite3.exe和代码页存在问题。语言是捷克语。活动代码页是852(我运行“ chcp”),但是当我在Powershell ISE中运行$Outputencoding
时,我得到的是:
sSingleByte : True
BodyName : iso-8859-2
EncodingName : Středoevropské jazyky (Windows)
HeaderName : windows-1250
WebName : windows-1250
WindowsCodePage : 1250
IsBrowserDisplay : True
IsBrowserSave : True
IsMailNewsDisplay : True
IsMailNewsSave : True
EncoderFallback : System.Text.InternalEncoderBestFitFallback
DecoderFallback : System.Text.InternalDecoderBestFitFallback
IsReadOnly : True
CodePage : 1250
Powershell脚本中的代码:
C:\sqlite3 -separator ';' places.sqlite "select moz_places.url, moz_places.title from moz_places where moz_places.title like '%' >> test1.txt
gc test1.txt | sort | get-unique > newtest.txt
copy newtest.txt test1.txt
charset输出文件“ newset.txt”的例子很糟糕:
Facebook –pĹ™ihlaste se,nebo se zaregistrujte Seznam-najdu tam, co neznám
命令行中的代码(当我仅运行带参数的sqlite时):
C:\sqlite3 -separator ; places.sqlite "select moz_places.url, moz_places.title from moz_places where moz_places.title like '%' >> test1.txt
字符集在输出文件中是完美的:
Facebook –塞兹南(Neez)zaregistrujte Seznam-纳吉(Najdu) 内兹纳姆
我需要Powershell脚本中正确的字符集,谢谢您的建议。