Перебирать определенные файлы в каталоге через .bat - PullRequest
0 голосов
/ 18 февраля 2012

Я пытаюсь создать bat-файл, чтобы перебирать только те файлы в каталоге, имена файлов которых начинаются с определенного слова.Например:
companyName .module1.exe
companyName .module2.dll

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

Ответы [ 2 ]

1 голос
/ 19 февраля 2012

Хорошо, если вы знаете, как перебирать файлы, просто используйте эти знания:

for %%f in (companyName*) do (
  ...
)

Обратите внимание, что перебор выходных данных dir подвержен ошибкам и во многих случаях будет искажать символы Юникода. Поскольку for может выполнять итерацию напрямую, редко требуется использовать параметр более низкого уровня.

1 голос
/ 18 февраля 2012

Добавьте в свой пакетный файл следующее:

for /F "eol=: tokens=*" %%A in ('dir /A-D /B "companyName*"') do (echo %%~fA)

Этот скрипт echo будет содержать все файлы (только файлы), начинающиеся с префикса companyName в текущем рабочем каталоге. Замените echo любой другой командой или командами, которые вы хотите вместо этого выполнить.

Обновление 1 : для поиска в другом каталоге вы можете либо

for /F "eol=: tokens=*" %%A in ('dir /A-D /B "pathToLookIn/companyName*"') do (echo %%~fA)

или

pushd \ & cd "pathToLookIn" & (for /F "eol=: tokens=*" %%A in ('dir /A-D /B "companyName*"') do (echo %%~fA)) & popd

Где pathToLookIn - это полный или относительный путь.

Обновление 2 : я обновил цикл for /F для обработки имен файлов, которые начинаются с ;, как предложил @dbenham.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...