Как вы перебираете каждый файл в каталоге с файлом .bat или .cmd?
Для простоты, пожалуйста, предоставьте ответ, который просто повторяет имя файла или путь к файлу.
Как вы перебираете каждый файл в каталоге с файлом .bat или .cmd?
Для простоты, пожалуйста, предоставьте ответ, который просто повторяет имя файла или путь к файлу.
Использование командной строки:
for /f %f in ('dir /b c:\') do echo %f
Пакетное использование файла:
for /f %%f in ('dir /b c:\') do echo %%f
Обновление: если каталог содержит файлы с пробелами в именах, вам нужно изменить разделитель, который использует команда for/f
. например, вы можете использовать трубу char.
for /f "delims=|" %%f in ('dir /b c:\') do echo %%f
Обновление 2: (быстро, через полтора года после первоначального ответа :-)) Если в имени каталога есть пробел, вы можете использовать опцию usebackq
for
:
for /f "usebackq delims=|" %%f in ('dir /b "c:\program files"') do echo %%f
И если вам нужно использовать перенаправление вывода или командный конвейер, используйте escape-символ (^
):
for /f "usebackq delims=|" %%f in ('dir /b "c:\program files" ^| findstr /i microsoft') do echo %%f
В качестве альтернативы используйте:
forfiles /s /m *.png /c "cmd /c echo @path"
Команда forfiles доступна в Windows Vista и выше.
Самый простой способ:
Из командной строки используйте:
for %f in (*.*) do echo %f
Из пакетного файла (в два раза больше знаков%):
for %%f in (*.*) do echo %%f
Из пакетного файла с папкой, указанной как 1-й параметр:
for %%f in (%1\*.*) do echo %%f
Используйте
for /r path %%var in (*.*) do some_command %%var
с:
По-другому:
for %f in (*.mp4) do call ffmpeg -i "%~f" -vcodec copy -acodec copy "%~nf.avi"
У меня было некоторое вредоносное ПО, которое помечало все файлы в каталоге как hidden/system/readonly. Если кто-то еще окажется в этой ситуации, cd в каталог и запустите for /f "delims=|" %f in ('forfiles') do attrib -s -h -r %f
.