4

当我运行命令时

wmic memorychip get capacity

从 cmd 窗口中的命令行,屏幕上的输出如下所示:

Capacity    
2147483648 

但是,如果我将此命令添加到批处理文件并尝试将输出重定向到文件,例如:

wmic memorychip get capacity >> %LOG%

(其中 %LOG% 只是我要在其中附加数据的日志文件),它在日志文件中保存为:

C a p a c i t y         

 2 1 4 7 4 8 3 6 4 8     

这里在每个字符之前插入了空格。在记事本++中,它显示插入了 NUL,由于某种原因,我无法将其粘贴到此处:(

有谁知道为什么输出会以这种方式改变以及如何避免这种转变?

4

3 回答 3

3

肯定是Unicode。

尝试

wmic memorychip get capacity |more>> %LOG%
于 2013-04-19T06:22:39.933 回答
1

如果您有输出文件但无法再次运行原始命令,cat original.txt | tr -d "\00" > cleaned.txt将生成一个删除空字符的新文件。此命令假定通用 Unix shell 工具可用,例如BusyBox提供的工具。

于 2019-10-15T02:31:34.347 回答
0

问题是 wmic 在 unicode 中工作,但在 ascii 中的 cmd。试试这个:

for /f "delims=" %a in ('wmic memorychip get capacity') do @for /f "delims=" %b in ("%a") do echo %b > log
于 2013-04-18T20:31:22.287 回答