Проблема в том, что вывод команды wmic
представляет собой текст Unicode, а for /F
возникли проблемы с преобразованием его в текст ANSI, поэтому некоторые возвраты осиротевшего кареткиосталось символов, что делает ваш вывод довольно странным.Вы можете доказать это, перенаправив вывод вашего пакетного скрипта в файл и просматривая его в шестнадцатеричном виде.редактор.
Чтобы решить эту проблему, оберните другой цикл for /F
, например:
for /F "delims=" %%b in ('
wmic DataFile where "Name='C:\\Windows\\System32\\notepad.exe'" get Version /VALUE
') do for /F "tokens=2 delims==" %%a in ("%%b") do (
echo(%%a.extension
)
NB:
Не используйте комментарий ::
в стиле блоков илипетли, поскольку они могут вызвать неожиданное поведение;используйте взамен rem
.