2014-10-09 92 views
1

我编码一个批处理文件,其中WMIC命令给出信息被写入到生成转换文本/ CSV文件,以UTF-8格式的批处理文件

WMIC /node:%%A Volume get systemname,caption,freespace,capacity > temp.txt 

临时文件临时文件的输出,但它的编码是UCS-2 Little Endian。

所以,当我试图读取使用for循环的文本文件,

for /f "tokens=1" %%B in (temp.txt) do (
     echo %%B 
    ) 

这亘古不变的,因为它的编码格式显示任何输出。

一旦我将这个Temp.txt转换为UTF-8/ANSI格式,for循环读取Temp文件。

我可以知道我怎样才能得到WMIC命令的输出UTF-8/ANSI或者如果不是我怎么可以转换UCS-2小端UTF-8/ANSI

问候

回答

1

可以过滤WMIC的输出到文件转换

WMIC /node:%%A Volume get systemname,caption,freespace,capacity | find /v "" > temp.txt 

或者您也可以将文件转换与type命令

WMIC ..... > temp1.txt 
type temp1.txt > temp.txt 

或者你也可以直接检索在for循环

for /f "tokens=1-4 delims=," %%a in (
    'wmic /node:%%A Volume get systemname^,caption^,freespace^,capacity' 
) do echo %%a %%b %%c %%d 
+0

谢谢你的信息,第二个建议帮助。 – Suvojit 2014-10-09 09:37:33