Могу ли я реализовать IF EXIST с заданным расширением файла?

342
Mr. Mendelli

Я нахожусь в процессе создания пакетного сценария для автоматического выполнения программы, если найден файл данного типа (в данном случае конкретно *.iso). Вот текущее направление, которое я возглавляю:

IF EXIST *.iso GOTO :AUTORUN  :AUTORUN "Impot.exe" "*.iso" 

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

1

2 ответа на вопрос

2
phuclv

dir возвращает ненулевой код завершения, если файлы не найдены

Так что вам просто нужно проверить уровень ошибок

dir *.iso >NUL 2>&1 if errorlevel 1 "Impot.exe" "*.iso" 

или просто

dir *.iso >NUL 2>&1 || "Impot.exe" "*.iso" 
1
Alex

Вы можете использовать forfilesутилиту, включенную в Windows:

forfiles /S /M *.iso /P \Path\where\to\start /C "cmd /c Impot.exe @path" 

Если вам не нужно искать iso-файлы рекурсивно, удалите опцию /S

Обратите внимание, что поведение этого отличается. Он вызывает `Impot.exe` отдельно для каждого найденного файла и не передает подстановочный знак непосредственно исполняемому файлу. phuclv 5 лет назад 0