Войти

Показать полную графическую версию : echo wmic bios get serialnumber Ломает логирование


merdzd
26-05-2020, 10:49
Добрый день.

Есть 2 скрипта один с "wmic bios get serialnumber>>" все действия пишутся в 1>>\\Server\_INST\%SerialNumber%-install-%DATE%.txt 2>>&1

for /f %%a in ('wmic bios get serialnumber /value^|find "="') do set "%%a"
echo test \\Server\_INST\%SerialNumber%-install-%DATE%.txt
echo test %DATE% Start \\Server\_INST\%SerialNumber%-install-%DATE%.txt

wmic bios get serialnumber>>\\Server\_INST\%SerialNumber%-install-%DATE%.txt

Второй без. "wmic bios get serialnumber>>\\Server\_INST\%SerialNumber%-install-%DATE%.txt["

Первый ломает кодировку так, что она не понимается ни каким шрифтом в блокноте.

Пробовал добавить "chcp" после определения переменной не помогло.

Еще вопрос по кодировке:
Если выполнять net stop wuauserv 1>>\\Server\_INST\%SerialNumber%-install-%DATE%.txt 2>>&1
Служба у которой есть кирилическое название,
результаты:

chcp 855 \ chcp 65001
The –Ґ*ва ®Ў*®ў«Ґ*Ёп Windows service is not started.

chcp 1251
‘«г¦Ў* "–Ґ*ва ®Ў*®ў«Ґ*Ёп Windows" *Ґ §*ЇгйҐ**.

Читается шрифтом терминал. а если менять шрифт все что выше с кодировкой chcp 1251 не прочитать.

merdzd
26-05-2020, 10:53
Первый ломает кодировку так, что она не понимается ни каким шрифтом в блокноте. »
Update В UTF-16LE сохраняет.

alpap
26-05-2020, 16:12
merdzd, удобно все просматривать не штатным блокнотом, сразу видна кодировка

@echo off
wmic bios get serialnumber
>file1.txt wmic bios get serialnumber
>file2.txt (for /f "delims=" %%a in ('wmic bios get serialnumber') do @echo:%%a)
pause

161539

Iska
26-05-2020, 17:15
Первый ломает кодировку так, что она не понимается ни каким шрифтом в блокноте. »
Update В UTF-16LE сохраняет. »
Именно так. Причём у Вас явным образом получается смесь из юникода и OEM/866.

Лучше зараз переходить на WSH/PowerShell.

merdzd
27-05-2020, 11:00
Есть одно но

Прекрасно работает:
wmic bios get serialnumber>>\\Server\_INST\install-%DATE%.txt
даёт точно такой же результат (http://forum.oszone.net/post-2922780-3.html) как у вас alpar
с кодировкой всё нормально.

А
wmic bios get serialnumber>>\\Server\_INST\%SerialNumber%-install-%DATE%.txt
с переменной %SerialNumber% меняет кодировку.
При том все другие строки в файле с этой переменной обрабатываются.

DJ Mogarych
27-05-2020, 13:10
Powershell:

$biosSN = (gwmi win32_bios).serialnumber
$biosSN |Out-File "\\Server\_INST\$biosSN-install-$((get-date).ToString("dd.MM.yyyy")).txt" -Append

merdzd
27-05-2020, 15:35
DJ Mogarych,
Прекрасно работает:
wmic bios get serialnumber>>\\Server\_INST\install-%DATE%.txt »

я разобрался >> не было во второй строке:

for /f %%a in ('wmic bios get serialnumber /value^|find "="') do set "%%a"
echo test \\Server\_INST\%SerialNumber%-install-%DATE%.txt
echo test %DATE% Start \\Server\_INST\%SerialNumber%-install-%DATE%.txt
wmic bios get serialnumber>>\\Server\_INST\%SerialNumber%-install-%DATE%.txt »




© OSzone.net 2001-2012