我正在编写一个批处理文件,其中WMIC命令提供一个写入临时文件的输出
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文件。
我是否可以知道如何在 UTF-8 / ANSI 中获取WMIC命令的输出,或者如果不能如何将 UCS-2 Little Endian 转换为 UTF-8 / ANSI
此致
答案 0 :(得分: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