Как добавить переменную к имени файла в командном файле? - PullRequest
0 голосов
/ 28 декабря 2018

Я хочу перенаправить файл в текстовый файл с определенным именем файла.Имя файла должно быть серийным номером машины.В настоящее время у меня есть команда ниже, но по некоторым причинам вывод отличается от того, что я хочу.

@echo off
set serial=wmic bios get serialnumber
set bit=manage-bde -status C:
%bit% > "C:\Users\Frangon\Desktop\%serial%.txt"
pause

Перенаправляет %bit% в текстовый файл, но имя файла становится wmic bios get serialnumber вместо СЕРИЙНОГО НОМЕРА устройства.

Пожалуйста, помогите, когда я застрял.

1 Ответ

0 голосов
/ 28 декабря 2018

Как сказано в комментарии ранее, способ получить вывод команды в переменную - это цикл for /f.Есть одна особенность с wmic: у нее необычные окончания строки CR CR LF.Первый CR будет частью переменной и вызовет плохие вещи.Одним из способов преодоления этого (и наиболее надежного) является анализ выходных данных с помощью другого цикла for.

Нет необходимости присваивать выходные данные manage-bde -status C: переменной (это было бы очень сложно вв любом случае, потому что это больше, чем одна строка).Просто перенаправьте вывод прямо в файл:

@echo off
for /f "tokens=2 delims==" %%a in ('wmic bios get serialnumber /value') do for %%b in (%%a) do set "serial=%%b"
manage-bde -status C: > "%USERPROFILE%\Desktop\%serial%.txt"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...