Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Drog
2 / 0 / 0
Регистрация: 13.02.2015
Сообщений: 18
#1

Как задать маску для файла, содержащего несколько любых символов подряд? - CMD/BAT

13.02.2015, 12:13. Просмотров 991. Ответов 4
Метки нет (Все метки)

Всем привет!
Подскажите, пожалуйста, или киньте ссылкой - как правильно задавать точные маски для файлов, переменных и т.п.?

Столкнулся с конкретной проблемой.
Например, есть простенький кусок из батника:
Bash
1
2
set fname=expl_????.arj
for %%f in (c:\%fname%) do echo %%~nxf
А в директории находятся файлы:
expl_201blahblah.arj
expl_2480.arj
expl_2.arj

В данном цикле интересует только обработка файла expl_2480.arj. Условно говоря, он приходит каждый раз со следующим порядковым номером, т.е. в глобальном масштабе вместо 2480 у нас может быть любое 4-значное число. Нужно, чтобы команда echo срабатывала только на файле expl_2480.arj , но, увы, результат выполнения - пишет имена всех файлов.

Почему так?
При использовании "?" в маске один раз - например set fname=expl_?.arj - оно работает правильно, "?" принимает значение любого символа, пусть даже и нулевого, и выводит expl_2.arj , остальные не трогает.
Если появляется больше одного "?" подряд - оно уже работает тупо как "*"

Оговорюсь сразу, дополнительные проверки на разбор файла и подсчёт количества символов после expl_ сделать, конечно же, можно, но интересует именно возможность задать маску по файлу, содержащему N (в моём случае 4) любых символа подряд.
Ну должен же быть такой функционал...
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.02.2015, 12:13
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как задать маску для файла, содержащего несколько любых символов подряд? (CMD/BAT):

Как задать параметры для bat файла?
как задать параметры для bat файла?

Как задать маску для ввода?
Доброго времени суток. Начинаю изучать питон. Пытаюсь создать простейшую...

Как задать маску ввода для texbox?
Есть textbox, нужно чтобы пользователь мог вносить в него данные только...

как задать маску для номера мобильного телефона
Здравствуйте! Скажите, как можно задать маску для номера мобильного телефона в...

Как считать текст из файла несколько раз подряд в программе?
В общем, делал упражнение и у меня программа коряво написана так, что...

Как создать маску для поиска чисел из файла?
Как создать маску для поиска чисел из внешнего файла?

4
ComSpec
3400 / 1945 / 627
Регистрация: 26.02.2014
Сообщений: 1,457
13.02.2015, 13:43 #2
Лучший ответ Сообщение было отмечено Drog как решение

Решение

Цитата Сообщение от Drog Посмотреть сообщение
Ну должен же быть такой функционал...




Drog, только так:


Код
@echo off

set "regexp=^expl_....\.arj$"
for /f "delims=" %%f in ('2^>nul dir/a-d/b "C:"^| findstr/irc:"%regexp%"') do echo %%f

pause>nul

.



А если ещё уточнить, что нужны только цифры, то тогда так:


Bash
1
2
3
4
5
6
@echo off
 
set "regexp=^expl_[0-9][0-9][0-9][0-9]\.arj$"
for /f "delims=" %%f in ('2^>nul dir/a-d/b "C:"^| findstr/irc:"%regexp%"') do echo %%f
 
pause>nul

.
2
Drog
2 / 0 / 0
Регистрация: 13.02.2015
Сообщений: 18
13.02.2015, 16:37  [ТС] #3
Цитата Сообщение от ComSpec Посмотреть сообщение
Drog, только так:
понятно, спасибо большое) в общем, без разбора имени файла не обойтись, а жаль...

Добавлено через 6 минут
ComSpec, ещё, не могли бы Вы пояснить, зачем во множестве используется "2^>nul" и параметр /r у команды findstr ?
0
ComSpec
3400 / 1945 / 627
Регистрация: 26.02.2014
Сообщений: 1,457
13.02.2015, 17:06 #4
Цитата Сообщение от Drog Посмотреть сообщение
ещё, не могли бы Вы пояснить, зачем во множестве используется "2^>nul" и параметр /r у команды findstr ?

Не могу. Болею я.
0
Drog
2 / 0 / 0
Регистрация: 13.02.2015
Сообщений: 18
13.02.2015, 17:19  [ТС] #5
ComSpec, Всё равно спасибо, помогли) дальше сам допилю.
Выздоравливайте
0
13.02.2015, 17:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2015, 17:19
Привет! Вот еще темы с решениями:

Как в TextBox задать маску
1. Эм... как в TextBox задать маску? например если это Password то над чтоб...

RegExp: задать маску для ввода только букв
подскажите как можно задать маску чтоб вводить только буквы

StringGrid: задать для поля маску ввода даты
Возможно ли в StringGrid задать для поля маску ввода даты? или ячейку сделать...

Как задать маску ввода в TextBox
в С++ есть такой термин маска ввода.используется когда в textbox нужно вести...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru