脚本中混合的ascii和unicode输出 - 如何获取命令输出ascii?

时间:2017-05-19 09:09:56

标签: unicode cmd windows-7 ascii

我有一个脚本,它是从使用C ++构建的服务运行的,不是使用unicode构建的。这个程序运行下面的脚本,奇怪的是,运行wmic qfe列表行的脚本的输出似乎输出为unicode。下面的示例输出。

这是脚本:

@echo off
echo This text is output as standard - no spacing between characters >>C:\log.txt

REM this one is output with 1 space between characters
wmic qfe list >>C:\log.txt

echo This text is also output as standard - no spacing >>C:\log.txt

示例输出

This text is output as standard - no spacing between characters
C a p t i o n                                                                                 C S N a m e                 D e s c r i p t i o n             F i x C o m m e n t s     H o t F i x I D       I n s t a l l D a t e     I n s t a l l e d B y                                   I n s t a l l e d O n     N a m e     S e r v i c e P a c k I n E f f e c t     S t a t u s     

h t t p : / / s u p p o r t . m i c r o s o f t . c o m / ? k b i d = 4 0 1 2 2 1 2           M F M - 7 4 2 - 0 - 7 1     S e c u r i t y   U p d a t e                               K B 4 0 1 2 2 1 2                               N T   A U T H O R I T Y \ S Y S T E M                   5 / 1 8 / 2 0 1 7                   

This text is also output as standard - no spacing 

实际上,我刚刚使用十六进制编辑器查看了文件,字母之间的字符是空字符。所以推测wmic qfe list必须输出unicode。

那么如何将所有输出作为ascii或所有输出作为unicode。输出ascii的所有内容都是首选。

1 个答案:

答案 0 :(得分:0)

wmic qfe list | find /v "" >> c:\log.txt
wmic qfe list | findstr "^" >> c:\log.txt

wmic命令的输出传输到findfindstr命令(如果您没有遇到订单问题,也可以使用sort ,或者在将输出重定向到文件之前,如果输出少于65535行,则为more