在Windows中,一些命令(如WMIC)输出到文件以后,默认是Unicode编码。但是有些软件并不支持这种编码(如易语言),这个时候我们就需要进行编码转换
抛开第三方软件,我们可以使用这几种简单的方法来实现:
1、使用find命令进行输出转换
例:wmic /NameSpace:\rootwmi Path MSStorageDriver_ATAPISmartData get VendorSpecific /value |find /v "" >Z:1.txt
说明:wmic输出的内容如果直接输出到文件,将会默认使用Unicode编码。但是经过find命令,再输出则默认为ANSI编码
2、使用type命令进行文件转换
例:
wmic /NameSpace:\rootwmi Path MSStorageDriver_ATAPISmartData get VendorSpecific /value "" >Z:1.txt
type Z:1.txt > Z:2.txt
说明:type命令用于显示文本文件的内容,通过重定向符>将原内容重新输出到新的文件,这样就改变了编码方式。
这个命令一般用于文件已经存在的情况!也可以通过这个命令进行批量转换。
3、在PowerShell下进行输出转换
例:PowerShell wmic /NameSpace:\rootwmi Path MSStorageDriver_ATAPISmartData get VendorSpecific /value |Out-File -Encoding "Default" Z:1.txt
说明:PowerShell是比CMD更强大的工具,本身就提供了一个输出到文件,并指定编码的功能:Out-File -Encoding "Default"