CMD/BAT - Добавление названия папки к имени файлов.

Ответить
Аватара пользователя
Viktor99

CMD/BAT - Добавление названия папки к имени файлов.

Сообщение Viktor99 »

В корневой папке есть подпапка с названием "Worked". Нужно, чтобы батник, находящийся в корневой папке добавлял ко всем файлам в "Worked" название папки перед файлом: Worked_xxxxxx. Помогите. пожалуйста. написать скрипт.
Аватара пользователя
Viktor99

Re: CMD/BAT - Добавление названия папки к имени файлов.

Сообщение Viktor99 »

Код:

Код: Выделить всё

for %%i in ("%~dp0\Worked\*.*") do ren "%~dp0\Worked\%%i" "Worked_%%i"
Аватара пользователя
alpap

Re: CMD/BAT - Добавление названия папки к имени файлов.

Сообщение alpap »

[можете удалить после корректировки]

Iska,

наверное лучше: for %%i in ("%~dp0Worked\*.*") do ren "%~dp0Worked\%%~nxi" "Worked_%%~nxi"

а то ТС прозреет при запуске с рабочего стола, по условию (В корневой папке есть подпапка с названием "Worked") удовлетворяет хоть и маловероятно
Аватара пользователя
mwz

Re: CMD/BAT - Добавление названия папки к имени файлов.

Сообщение mwz »

Viktor99, имя подпапки конкретно "Worked" — или может быть в общем случае любым?
Аватара пользователя
mwz

Re: CMD/BAT - Добавление названия папки к имени файлов.

Сообщение mwz »

Название конкретно такое. А можно как-то реализовать скрипт, чтобы он изменял имя файла по маске "имя папки_имя файла" в любой папке, куда его забросить?
Аватара пользователя
alpap

Re: CMD/BAT - Добавление названия папки к имени файлов.

Сообщение alpap »

Цитата Viktor99:



_имя файла
CMD/BAT - Добавление названия папки к имени файлов.




а если такой уже есть? И в любом случае надо что-то: _имя файла_1(2, 3, ...) или типа того, если файл не один
Аватара пользователя
Viktor99

Re: CMD/BAT - Добавление названия папки к имени файлов.

Сообщение Viktor99 »

Цитата alpap:



а если такой уже есть? И в любом случае надо что-то: _имя файла_1(2, 3, ...) или типа того, если файл не один
CMD/BAT - Добавление названия папки к имени файлов.




В данном случае файлы всегда с разными именами (одинаковых никогда не будет).
Аватара пользователя
megaloman

Re: CMD/BAT - Добавление названия папки к имени файлов.

Сообщение megaloman »

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

Переименовываем по маскам, имя папки и имя файла может задаваться маской:

Папка\Файл -> Папка\Папка_Файл

Повторный запуск батника не приведёт к еще одному переименованию. То есть, имена

Папка\Папка_Файл -> не будут переименованы в Папка\Папка_Папка_Файл
Ответить

Вернуться в «Скриптовые языки администрирования Windows»