Я нашел другие ответы, связанные с 8.3 именами файлов и тому подобным, но здесь проблема не в этом.

Я использую Windows 7 в командной строке.

Я запускаю это: for /R "c:\" %A in (*.tmp) do echo "%A" , и он находит все файлы с.TMP как расширение, но также находит мой тестовый файл с.TMP123 как его расширение:

Примеры:

"c:\Users\random\AppData\Local\Temp\~DFDCC0F94DFE245596.TMP"
"c:\Windows\Temp\Testfile.tmp123"

Я также пробовал это: for /R "c:\" %A in ("*.tmp") do echo "%A" ,
и это: for /R "c:\" %A in (*."tmp") do echo "%A" , и результаты совпадают.

Редактировать: это не показывает, но это * .tmp в скобках выше.

Это также происходит при поиске других расширений, поэтому это делают не только файлы .tmp.

Есть ли способ ограничить это так, чтобы он находил только файлы с правами.ТМП как расширение?

1 ответ1

1

Либо отфильтруйте расширение:

for /f "delims=" %A in ('dir /B/S C:\*.tmp ^|findstr /ec:".tmp"') do @echo %A

Или проверьте расширение с помощью ~ -modifiers

for /R "c:\" %A in ("*.tmp") do @if /i "%~xA"==".tmp" @echo %A

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .