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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Переименование файлов

Ответить
Настройки темы
CMD/BAT - Переименование файлов

Новый участник


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

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


Здравствуйте.
Кратко. Есть папка с файлами типа :

Код: Выделить весь код
p_name.mdl
p_name.mdl
p_name.mdl
v_name.mdl
v_name.mdl
v_name.mdl
w_name.mdl
w_name.mdl
w_name.mdl
w_name.mdl
Нужно внести дополнительный текст с сохранением существующих имён а именно

Код: Выделить весь код
p_new text_name.mdl
v_new text_name.mdl
w_new text_name.mdl

Отправлено: 14:02, 20-12-2017

 

Ветеран


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

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


Цитата f1rstonlyone@vk:
Кратко. Есть папка с файлами типа : »
Не может быть каталога со всеми перечисленными файлами единовременно — у многих из них одинаковые имена.


Цитата f1rstonlyone@vk:
Нужно внести дополнительный текст с сохранением в существующих имён а именно »
По какому принципу? Заменить единственный символ «_» в имени на «_мойтекст_»?

Отправлено: 14:05, 20-12-2017 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


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

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


нужно между символами _ _ вставить текст, не более.
Мне не надо менять все название в каждом файле, мне просто надо внести доп. текст между символами что указаны

Отправлено: 14:08, 20-12-2017 | #3


Ветеран


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

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


f1rstonlyone@vk, О каких «вставить между» Вы пишете? В примере имён существующих файлов ровно по одному символу _, и я не представляю, как можно вставить между.

Ещё раз: что заменяем? Единственный символ «_» в имени? И на что меняем. Проще говоря — опишите принцип замены. Или вставки.

Отправлено: 14:13, 20-12-2017 | #4


Новый участник


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

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


Извиняюсь, не выделил символ "_"
проще говоря

p_name.mdl
v_name.mdl
w_name.mdl

в

p_new text_name.mdl
v_new text_name.mdl
w_new text_name.mdl

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


Ветеран


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

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


Фууух… Ладно, воспользуемся методом научного тыка.
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq delims=" %%i in (`2^>nul dir /a:-d /b "*_name.mdl"`) do (
	set sName=%%~i
	ren "%%~i" "!sName:_=_Мама мыла раму_!"
)

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

Отправлено: 15:02, 20-12-2017 | #6


Ветеран


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



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Переименование файлов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - переименование файлов Alexander_88 Скриптовые языки администрирования Windows 10 25-07-2017 21:30
CMD/BAT - Переименование файлов gremlintv2 Скриптовые языки администрирования Windows 3 27-06-2016 23:42
Переименование файлов B1010 Видео и аудио: обработка и кодирование 0 28-09-2014 11:38
CMD/BAT - Переименование файлов. gen0m.rsw Скриптовые языки администрирования Windows 1 15-10-2010 19:15
переименование файлов mask Программирование и базы данных 6 20-05-2003 00:53




 
Переход