4

В партии я хочу использовать:

FOR /F "usebackq skip=1" %I IN (wmic datafile where Name^="D:\\TOTO.EXE" get Version) DO (ECHO %I)

и хотите ограничить ECHO, не включив ECHO is on. для последней строки, которая пуста.

Как я могу это сделать?

1 ответ1

3

Я не хочу иметь ECHO для последней пустой строки

FOR /F "usebackq skip=1" %I IN (wmic datafile where Name^="D:\\TOTO.EXE" get Version) DO (ECHO %I)

Есть несколько вещей, которые нужно изменить, чтобы вышеперечисленное работало в командном файле:

  1. Заменить каждую % с двойной %%

  2. Добавьте кавычки (`) вокруг команды, которая выполняется for .

  3. Труба | Команда wmic для findstr /r /v "^$" удаляет пустые строки (что приведет к удалению ECHO is on. Вывод.

Собрав все воедино, используйте следующий пакетный файл (test.cmd):

@echo off
setlocal
for /f "usebackq skip=1" %%i in (`wmic datafile where Name^="D:\\TOTO.EXE" get Version ^| findstr /r /v "^$"`) do (echo %%i)
endlocal

Вы получите однострочный вывод, подобный следующему:

F:\test>test
6.1.7600.16385

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .