2015-01-23 5 views
1

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

его, как,

if exist <any file with extension .elf> 
    do something 
else 
    do something else 

Здесь имя файла может быть что угодно но только расширение (.elf) является важным

ответ

3

В простейшем случае партии язык включает в себя конструкцию для этой задачи

if exist *.elf (
    :: file exists - do something 
) else (
    :: file does not exist - do something else 
) 

где if exist испытают для существования элемента в текущем или указать папку, которая соответствует указанному имени/подстановочным выражения.

Хотя в этом случае вам больше ничего не понадобится, вы должны принять во внимание, что if exist не имеет никакого значения между файлом и папкой. Если используемое вами имя/подстановочное выражение соответствует имени папки, то значение if exists будет равно true.

Как обеспечить, чтобы мы тестировали файл? Самое простое решение - использовать команду dir для поиска файлов (исключая папки). Если это не удается (повышает уровень ошибок), нет файлов, соответствующих условию.

dir /a-d *.elf >nul 2>&1 
if errorlevel 1 (
    :: file does not exist - do something 
) else (
    :: file exists - do something else 
) 

Или, используя условное исполнение (только немного языка Генерального Общей Аббревиатуры для кода выше)

dir /a-d *.elf >nul 2>&1 && (
    :: file does exist - do something 
) || ( 
    :: file does not exist - do something else 
) 

Что она делает это выполнить dir команды на поиск *.elf, за исключением папок (/a-d) и отправку всех выводит на nul устройство, то есть отбрасывает выход. Если уровень ошибок поднят, соответствующий файл не найден.

2

так же легко, как вы можете думать:

if exist *.elf echo yes