Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - IF EXIST "path/*.ext" работает как IF EXIST "path/*.ext*"

Ответить
Настройки темы
CMD/BAT - IF EXIST "path/*.ext" работает как IF EXIST "path/*.ext*"

Новый участник


Сообщения: 13
Благодарности: 1

Профиль | Отправить PM | Цитировать


Пример

if exist "*.xls" echo OK

сработает на файле *.xlsx, да и в принципе будет работать как *.xls*, хоть *.xlsxxx ему подкинь

Вопрос как этого избежать? если нужно строгое соответствие расширению файла.

Отправлено: 12:02, 26-09-2019

 

Новый участник


Сообщения: 13
Благодарности: 1

Профиль | Отправить PM | Цитировать


отбой, заменил подсчетом в цикле совпадений по расширению.

Отправлено: 14:27, 26-09-2019 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Ветеран


Contributor


Сообщения: 2735
Благодарности: 1699

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@Echo Off
cls
	Set "BoxIn=Z:\Box_In"
	Set "Ext=xls"
	FOR %%f IN ("%BoxIn%\*.%Ext%") DO If /I "%%~xf"==".%Ext%" Echo %%f
pause
Exit /B

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:57, 26-09-2019 | #3


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата lz57005:
IF EXIST "path/*.ext" работает как IF EXIST "path/*.ext*" »
Если у Вас включена поддержка создания коротких имён (8.3 filename - Wikipedia) для длинных имён:
Код: Выделить весь код
fsutil.exe 8dot3name query
— то для каждого Вашего .xlsx будет создано короткое имя с расширением xls, для каждого Вашего .xlsxxx будет создано короткое имя с расширением xls:
Скрытый текст

а функции WinAPI FindFirstFile/FindNextFile работают с обеими именами — и с длинными, и с короткими, посему будут найдены и все .xlsx, и все .xlsxxx.

Так что у Вас как раз и наблюдается самое что ни на есть:
Цитата lz57005:
строгое соответствие расширению файла. »
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:25, 26-09-2019 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - IF EXIST "path/*.ext" работает как IF EXIST "path/*.ext*"

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Загрузка - После изменения переменной Path при загрузке "unmountable boot volume" А.С. Шаман Накопители (SSD, HDD, USB Flash) 13 15-10-2014 16:55
[решено] При открытие "vk.com", "выкидывает" на страницу для "разморозки страницы" sovenok Лечение систем от вредоносных программ 17 21-11-2013 04:09
Интерфейс - [решено] Как удалить папку "Моя музыка","Мои Картинки", "Мое видео"? verdix Microsoft Windows 2000/XP 3 03-10-2009 23:46
Интерфейс - Надоело искать "file ext" в live ? Поищите в google ;) ~GlukoZz~ Microsoft Windows Vista 5 13-11-2008 07:47
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") submaster Microsoft Windows NT/2000/2003 5 13-09-2006 12:29




 
Переход