Добавление названия папки к имени файлов.
В корневой папке есть подпапка с названием "Worked". Нужно, чтобы батник, находящийся в корневой папке добавлял ко всем файлам в "Worked" название папки перед файлом: Worked_xxxxxx. Помогите. пожалуйста. написать скрипт.
|
Код:
for %%i in ("%~dp0\Worked\*.*") do ren "%~dp0\Worked\%%i" "Worked_%%i"
|
[можете удалить после корректировки]
Iska,
наверное лучше: for %%i in ("%~dp0Worked\*.*") do ren "%~dp0Worked\%%~nxi" "Worked_%%~nxi"
а то ТС прозреет при запуске с рабочего стола, по условию (В корневой папке есть подпапка с названием "Worked") удовлетворяет хоть и маловероятно
|
Viktor99, имя подпапки конкретно "Worked" — или может быть в общем случае любым?
|
Название конкретно такое. А можно как-то реализовать скрипт, чтобы он изменял имя файла по маске "имя папки_имя файла" в любой папке, куда его забросить?
|
а если такой уже есть? И в любом случае надо что-то: _имя файла_1(2, 3, ...) или типа того, если файл не один
|
Цитата:
Цитата alpap
а если такой уже есть? И в любом случае надо что-то: _имя файла_1(2, 3, ...) или типа того, если файл не один »
|
В данном случае файлы всегда с разными именами (одинаковых никогда не будет).
|
Viktor99,
Код:
@Echo Off
Set "NameFolder=Box*"
Set "NameFile=*.mp3"
FOR /F "usebackq delims=" %%d IN (`Dir "%NameFolder%" /b /A:D 2^>nul`) DO (
FOR /F "usebackq delims=" %%f IN (`Dir "%%d\%NameFile%" /b /A:-D 2^>nul`) DO (
Call :RenFile "%%d" "%%f"
)
)
GoTo :Eof
:RenFile
Set "InDir=%~1
Set "InFile=%~2"
Call Set "InFile=%%Infile:%InDir%_=%%"
If "%InFile%"==%2 Ren "%~1\%~2" "%~1_%~2"
GoTo :Eof
Переименовываем по маскам, имя папки и имя файла может задаваться маской:
Папка\Файл -> Папка\Папка_Файл
Повторный запуск батника не приведёт к еще одному переименованию. То есть, имена
Папка\Папка_Файл -> не будут переименованы в Папка\Папка_Папка_Файл
|
Время: 14:40.
© OSzone.net 2001-