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

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

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

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


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

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


Здравствуйте!
Нужно очень сделать батничек, который переименовывает файлы PDF, а конкретнее заменяет в названиях существующих файлов символы " ", "_","+","=","&" на "-".
Я сделал что так что бы заменял только один символ, а вот как подставит регулярное выражение не пойму.

renamer.bat:
Код: Выделить весь код
for %%g in (*.pdf) do call :s_subroutine "%%~nxg" "%%g"
:s_subroutine
set _sss=%1
set _ddd=%_sss:_=-%
ren %2 %_ddd%
goto :eof
set _ddd=%_sss:_=-% вот эта строка заменяет все символы "_" на символ "-", а вот как здесь пристроить регулярное выражение мне не понятно.

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

Отправлено: 13:43, 25-01-2010

 

Аватара для Devils0411

Ветеран


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

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


А прям в переменной эти символы можно заменить?

-------
Скрипт автоустановки WINDOWSXP; Скрипт мультиустановки ОС


Отправлено: 16:44, 18-08-2010 | #21



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

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


Аватара для zeroua

Ветеран


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

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


Нужен простой скрип для переименования *.msi пакета с любым названием в заданное. Все забыл уже и сам нашел простое решение.

ren *.msi newname.msi, думаю и дальше разберусь сам.

-------
лучше по утру на Google Earth искать ГДЕ ты пил, чем на youtube КАК...
http://forum.oszone.net/image.php?type=sigpic&userid=68333&dateline=1203429944


Последний раз редактировалось zeroua, 27-01-2011 в 03:49.


Отправлено: 03:40, 27-01-2011 | #22


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


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

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


Народ, есть задача в одних файлах jpeg (*.jpg) заменить _ на ~~
В других после шестого символа вставить ~~
например 4480354941.jpg на 448035~~4941.jpg

Отправлено: 07:53, 02-02-2011 | #23


Аватара для El Sanchez

Ветеран


Contributor


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

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


Цитата mozg777:
в одних файлах jpeg (*.jpg) заменить _ на ~~ »
mozg777,
Код: Выделить весь код
@Echo Off
Set Source=C:\Source

For %%A In ("%Source%\*.jpg") Do Call :_Func "%%~nxA"
GoTo :EoF

:_Func
	Set FileName=%~n1
	Ren "%Source%\%~1" "%FileName:_=~~%%~x1"
Цитата mozg777:
В других после шестого символа вставить ~~ »
mozg777,
Код: Выделить весь код
@Echo Off
Set Source=C:\Source

For %%A In ("%Source%\*.jpg") Do Call :_Func "%%~nxA"
GoTo :EoF

:_Func
	Set FileName=%~n1
	If Not "%FileName:~5%"=="" Ren "%Source%\%FileName%%~x1" "%FileName:~0,6%~~%FileName:~6%%~x1"
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:25, 02-02-2011 | #24


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


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

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


Огромное спасибо!
Второй работает на ура!
Первый произвольно в некоторых файлах ставит 4 тильды, поясните плиз как исправить
P.S. Где можно почитать про написание таких скриптов, расшифровку атрибутов

Отправлено: 08:59, 03-02-2011 | #25


Аватара для El Sanchez

Ветеран


Contributor


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

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


Цитата mozg777:
Первый произвольно в некоторых файлах ставит 4 тильды, поясните плиз как исправить »
mozg777, значит в имени файла встречаются 2 символа подчеркивания подряд

Цитата mozg777:
Где можно почитать про написание таких скриптов, расшифровку атрибутов »
Например, Полезные ресурсы по скриптовым языкам администрирования

Отправлено: 10:24, 03-02-2011 | #26


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


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

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


Цитата El Sanchez:
значит в имени файла встречаются 2 символа подчеркивания подряд »
El Sanchez, нет это в тех файлах где надо после шестого символа поставить две тильды. я проверял через сьв - некоторые файлы скрипт прогоняет два раза. что если в функцию включить условие типа если стоят две тильды - то ничего не добавлять.

Отправлено: 07:27, 04-02-2011 | #27


Аватара для gora

Ушёл из жизни


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

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


Цитата mozg777:
в функцию включить условие типа если стоят две тильды - то ничего не добавлять. »
Попробуйте так:
Код: Выделить весь код
:_Func
	Set FileName=%~n1
	Set FN=%FileName:~~=%
	If "%FN%"=="%FileName%" If Not "%FileName:~5%"=="" Ren "%Source%\%FileName%%~x1" "%FileName:~0,6%~~%FileName:~6%%~x1"
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:07, 04-02-2011 | #28


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


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

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


явная ошибка, чет не срастается....

Отправлено: 13:38, 04-02-2011 | #29


Аватара для El Sanchez

Ветеран


Contributor


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

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


Цитата mozg777:
нет это в тех файлах где надо после шестого символа поставить две тильды. я проверял через сьв - некоторые файлы скрипт прогоняет два раза. »
mozg777, это 2 отдельных скрипта с одной лишь командой переименования, никаких повторных прогонов. Просто не надо после отработки одного скрипта применять другой скрипт к уже обработанным файлам.
Я полагаю, что задача у вас такая: заменить символ _ в именах файлов на ~~, если символ _ в имени не встречается, то после шестого символа добавить ~~.
Код: Выделить весь код
@Echo Off
Set Source=C:\Source

For %%A In ("%Source%\*.jpg") Do Call :_Func "%%~nxA"
GoTo :EoF

:_Func
	Set FileName=%~n1
	If "%FileName:_=%"=="%FileName%" (
		If Not "%FileName:~5%"=="" Ren "%Source%\%FileName%%~x1" "%FileName:~0,6%~~%FileName:~6%%~x1"
	) Else (
		Ren "%Source%\%~1" "%FileName:_=~~%%~x1"
	)
P.S. gora, хорошее решение поиска определенного символа в имени файла. И find/findstr не нужен.

Отправлено: 14:04, 04-02-2011 | #30



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Система - [addon] Internet Explorer 8 Rus (с заменой файлов IE6) версия 14.5.3 jameszero Наборы обновлений для Windows XP/2003/Windows 7 955 22-01-2021 22:59
Система - [addon] Internet Explorer 7 Rus (с заменой файлов IE6) версия 14.5.3 jameszero Наборы обновлений для Windows XP/2003/Windows 7 1277 06-02-2015 16:30
CMD/BAT - [решено] Перемещение и удаление файлов по условию и маске VitHAK Скриптовые языки администрирования Windows 14 23-12-2013 08:57
Установка - Помогите с заменой файлов в дистрибутиве AlexThePeacemaker Microsoft Windows 2000/XP 0 12-12-2009 11:42
Разрешение записи файлов по маске Green_Fox Microsoft Windows 2000/XP 5 11-08-2006 12:35




 
Переход