Як ви повторюєте кожен файл у каталозі з файлом .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
команда. наприклад, ви можете використовувати трубопровід.
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 char ( ^
):
for /f "usebackq delims=|" %%f in (`dir /b "c:\program files" ^| findstr /i microsoft`) do echo %%f
/f
потрібно після for
? Відповідно до довідкових документів, /f
прапор відкривається та читається кожен файл. Це потрібно для відлуння або перейменування файлів?
/f
Після FOR
обмежує його файли. Аналогічно /d
обмежує каталоги (папки) і /r
вказує на те, що вони мають рекурсивний характер.
'dir /b "c:\program files"'
цього має бути`dir /b "c:\program files"`
Крім того, використовуйте:
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
dir /B
результатів for
.
Використовуйте
for /r path %%var in (*.*) do some_command %%var
з:
%%var was unexpected at this time.
Ви можете навести точний приклад? Я спробував купу варіаційfor /r . %%var in (*.*) do echo %%var
Інший спосіб:
for %f in (*.mp4) do call ffmpeg -i "%~f" -vcodec copy -acodec copy "%~nf.avi"
"%~nf"
означає ім'я файлу без розширення, де f
ім'я змінної, зазначеної в for
частині. Документи: docs.microsoft.com/en-us/previous-versions/windows/it-pro/…