Як ви повторюєте кожен файл у каталозі з файлом .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/…