Пакетный файл регулярное выражение для поиска файлов с цифрой в имени

Мне нужен пример командного файла, который использует регулярное выражение для поиска файлов с цифрой в имени или определенным диапазоном чисел.

Есть ли способ сделать это? Простой пример?

3 ответа

Часть этого кредита идет на ответ YAP.

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

@Echo Off
CD C:\Folder\To\Process
Dir /B>Dir.temp
FindStr /R "[0-9]" "Dir.temp">FindStr.temp
Del Dir.temp
For /F "tokens=*" %%a In (FindStr.temp) Do Call :WorkIt "%%a"
Del FindStr.temp
Exit /B

:WorkIt
:: Insert code here.  Use %1 to get the file name with quotes.  For example:
Echo Processing %1...
Exit /B

FindStr строка содержит выражение регулярного выражения Версия регулярных выражений для командной строки ограничена. Какой точный диапазон вам нужен и в каком формате имена файлов?

Если, например, вы знаете, что во всех файлах есть 3-значные числа, вы можете ограничить его всеми элементами от 000 до 299 с помощью выражения [0-2][0-9][0-9],

Я предполагаю, что вы о командных файлах командной строки / MS-Dos здесь?

Если вы, к сожалению, ответите НЕТ, ЕДИНСТВЕННЫЕ подстановочные знаки, которые поддерживают простые старые пакетные файлы:

    * = match all

а также? = Матч 1

так:

      mytune*.mp?

будет соответствовать:

      mytune01.mp3, mytune01.mpg, mytune-the-best.mpe

Однако есть альтернатива...

Если вы используете современную версию Windows, скорее всего, у вас установлена ​​Power-Shell, нажмите на

start->run, затем введите power-shell и нажмите return, если вы получаете то, что выглядит как окно командной строки, то у вас оно установлено, если нет, то посмотрите на сайте MS для загрузки.

Если у вас есть это, если вы хотите погрузиться прямо в игру, вы можете найти все, что вам нужно на Reg-ex - это PS здесь:

http://powershell.com/cs/blogs/ebook/archive/2009/03/30/chapter-13-text-and-regular-expressions.aspx

Однако я бы порекомендовал потратить час или около того на изучение основ.

Есть в findstr. Проверьте это

Другие вопросы по тегам