Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

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

Ветеран


Contributor


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

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


Натравить на папку не умею, а папку на батник - пожалуйста
Код: Выделить весь код
@Echo Off
	If "%~1"=="" (
		Echo "%~dpnx0" sterted without argument &Echo.
		Pause
		Exit /B 2
	)
	Set "In=%~1" 
	If "%In:~-1%"=="\" Set "In=%In:~0,-1%"

	Set  InE=".C.wav" ".L.wav" ".R.wav" ".SL.wav" ".SR.wav"
	Set OutE=" C.wav" " L.wav" " R.wav" " Ls.wav" " Rs.wav"

	Set /A N=1000
	FOR %%f IN (%InE%) DO Set /A N+=1 &Call Set "In@%%N%%=%%~f"
	
	Set /A NN=%N%
	Set /A N=1000
	FOR %%f IN (%OutE%) DO Set /A N+=1 &Call Set "Out@%%N%%=%%~f"

	For /L %%i In (1001,1,%NN%) DO Call :MyRen "%In%" "%%In@%%i%%"  "%%Out@%%i%%"
GoTo :Eof

:MyRen
	FOR %%f IN ("%~1\*%~2") DO (
		Set "Rep=%%~nxf~~"
		 >nul Call Move /Y "%%f" "%~1\%%Rep:%~2~~=%~3%%"
	)
GoTo :Eof
Сделайте, например, на рабочем столе значок на батник, и таскайте на него нужную папку в проводнике.
Как это работает

В цикл помещен список для замены ".C.wav" ".L.wav" ".R.wav" ".SL.wav" ".SR.wav"
В цикле элементы списка присваиваются переменным In@10001, In@10002, In@10003 ...
Код: Выделить весь код
	Set /A N=1000
	FOR %%f IN (%InE%) DO Set /A N+=1 &Call Set "In@%%N%%=%%~f"
Аналогично Out@10001, Out@10002, Out@10003 ...
В NN сохраняем максимальный номер, чтобы потом в цикле перебрать все переменные:
что заменяем - на что заменяем
при вызове функции переименования

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

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:24, 14-03-2019 | #13