Как указала афория, вам нужны цитаты вокруг %%A
.
Но главная проблема - это вывод команды wmic,
как он выводит в формате Unicode.
Попробуйте этот код, чтобы увидеть эффект
FOR /F "tokens=* skip=1 delims=" %%A in ('wmic csproduct get name') do (
echo .............1%%A2
)
На выходе будет что-то вроде
2............1TravelMate 7720
2............1
Что здесь происходит? К строкам добавляется символ <CR>
, поэтому 2
будет напечатан в позиции 1 строки.
Вы можете избежать этого, просто удалив последний символ из %%A
setlocal EnableDelayedExpansion
FOR /F "tokens=* skip=1 delims=" %%A in ('wmic csproduct get name') do (
set "line=%%A"
set "line=!line:~0,-1!"
echo "!line!"
)
Или вы используете команду TYPE
, чтобы нормализовать вывод
wmic csproduct get name > wmicOutput.tmp
FOR /F "tokens=* skip=1 delims=" %%A in ('type wmicOutput.tmp') do (
echo Works too "%%A"
if "%%A"== "Vostro 430" goto :Vostro
)