Пакетный скрипт для переименования файлов в аргументе папки - PullRequest
0 голосов
/ 14 декабря 2010

Я не могу найти никаких ссылок, объясняющих, как перебрать папку, переданную в качестве аргумента, и переименовать каждый файл. Все примеры, которые я видел, предполагают, что скрипт работает в папке, где файлы будут переименованы, или жестко закодировал путь к папке в цикле. Как я могу это сделать? Вот пример того, что я пытаюсь сделать:

for /f %%a in (%1) do call :RenameFiles

:RenameFiles
Rename %%a "new filename"
Goto :EOF

1 Ответ

1 голос
/ 14 декабря 2010

Следующее добавляет префикс «renamed-» к каждому файлу в каталоге, указанном в качестве аргумента командной строки:

for %%F in (%~1\*) do ren "%%~F" "renamed-%%~nxF"

РЕДАКТИРОВАТЬ Самое простое решение проблемы бесконечного цикла - это работа в два этапа:

  1. подготовить список операций
  2. выполнить план.

-

set OpList=%TEMP%\%~n0%RANDOM%.bat
copy nul "%OpList%"
for %%F in (%~1\*) do echo ren "%%~F" "renamed-%%~nxF" >> "%OpList%"
call "%OpList%"
del "%OpList%"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...