2013-04-18 2 views
2

Когда я запускаю командупространство/обнуляет вставленную в перенаправлен выход CMD команды

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  

Здесь пространства был вставлен перед каждым символом. В Notepad ++ это показывает NULs вставляется, по какой-то причине я не могу вставить его здесь :(

Кто-нибудь знает, почему выход изменяется таким образом, и как избежать этой трансформации?

ответ

0

проблема что Wmic работает в юникодом но CMD в ascii.Try это:.

for /f "delims=" %a in ('wmic memorychip get capacity') do @for /f "delims=" %b in ("%a") do echo %b > log 
2

Unicode наверняка

Попробуйте

wmic memorychip get capacity |more>> %LOG% 
+0

он может выглядеть лучше в вашем файле журнала, если вы используете 'wmic memorychip get capacity/value', который дает вам' Capacity = 2147483648' – Stephan

+0

Не согласен, '/ value' не работал для команды, которую я использовал, но используя' | больше' работал отлично. –