Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2735
Благодарности: 1699

Профиль | Отправить PM | Цитировать


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
Переименовываем по маскам, имя папки и имя файла может задаваться маской:
Папка\Файл -> Папка\Папка_Файл
Повторный запуск батника не приведёт к еще одному переименованию. То есть, имена
Папка\Папка_Файл -> не будут переименованы в Папка\Папка_Папка_Файл

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 17:56, 16-11-2017 | #8