Пакетный файл регулярное выражение для поиска файлов с цифрой в имени
Мне нужен пример командного файла, который использует регулярное выражение для поиска файлов с цифрой в имени или определенным диапазоном чисел.
Есть ли способ сделать это? Простой пример?
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
Однако я бы порекомендовал потратить час или около того на изучение основ.