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

Название темы: Переименование файлов
Показать сообщение отдельно

Ветеран


Contributor


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

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


Вот еще один тык. Отличие от предыдущего - повторный запуск скрипта не приведёт к еще одной вставке указанного текста
Код: Выделить весь код
@Echo Off
Set "BoxIn=Z:\Box_In"
Set "Mask=*_*.mdl"
Set "Text=У попа была собака"

If Not Exist "%BoxIn%" (Echo Inbox %BoxIn% not found &Pause &Exit /B 1) 

Pushd "%BoxIn%"
FOR /F "usebackq tokens=1,2* delims=_" %%i IN (`2^>nul Dir %Mask% /b /A:-D`) DO ( 
	If /I Not "%%j"=="%Text%" (
		If "%%k"=="" (
			Ren "%%i_%%j" "%%i_%Text%_%%j"
		) Else (
			Ren "%%i_%%j_%%k" "%%i_%Text%_%%j_%%k"
		)
	)
)
Popd
Exit /B 0
Маску можно указать и конкретнее. f1rstonlyone@vk, Я не понял, что в имени файла постоянно: p,v,w или name? Если изменяемое name, то можно написать, например:
Код: Выделить весь код
Set "Mask=p_*.mdl v_*.mdl w_*.mdl"
Если name постоянно, то
Код: Выделить весь код
Set "Mask=*_name.mdl"
Укажите в скрипте папку с файлами BoxIn. Если скрипт предполагается помещать в папку с файлами, то указывать
Код: Выделить весь код
Set "BoxIn=%~dp0"

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


Последний раз редактировалось megaloman, 20-12-2017 в 16:37.


Отправлено: 16:20, 20-12-2017 | #7

Название темы: Переименование файлов