Пакетный файл - соответствующие расширения файлов - PullRequest
2 голосов
/ 23 июля 2010

Возможно, это слишком простой вопрос, но как мне сопоставить расширение файла, такое как .jpg, в то время как не совпадает с jpg~ (т. Е. Jpg, из которого программа сделала локальную копию?) Моя текущая строка:

for /f %%a in ('dir /b *.jpg') do echo %%~na

Но если у какой-либо программы есть копия одного из открытых файлов (и, таким образом, был создан файл .jpg~), это регулярное выражение тоже будет соответствовать. Я обнаружил ссылку на $ как «конец строки», но это вообще не работает:

for /f %%a in ('dir /b *.jpg$') do echo %%~na

Ответы [ 2 ]

4 голосов
/ 23 июля 2010

Я не думаю, что это можно отфильтровать с помощью только команды FOR (если вы не направите вывод dir в findstr), но в этом случае добавьте простой if if - все, что нужно:

for %%A IN (*.jpg) DO if "%%~xA"==".jpg" @echo %%~A
1 голос
/ 23 июля 2010

Я думаю, что проблема возникает из представления короткого имени.(Используйте dir /X, и вы увидите, что оба xxx.jpg и xxx.jpg~ имеют имя файла 8.3, которое заканчивается .jpg.)

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