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

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

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

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


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

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


Добрый день!
Передо мной стоит задача автоматически(при помощи *.bat-файла) переименовывать файлы по следующей маске:
исходное имя файла: XXXXXYYYYY123.DAT
требуемое имя файла: XXXXXtmplt123.DAT

То есть в исходном имени файла надо символы с 5го по 10й заменить на фиксированнуй маску. В примере маска - это 'tmplt'.
Пока что удалось найти информацию только о том как добавить префикс в начало/конец файла или же заменить имя целиком. Как изменить фрагмент в середине имени - не могу разобраться.
Буду очень признателен за помощь в решении данной задачи!!!

Отправлено: 18:24, 10-08-2012

 

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

Ветеран


Contributor


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

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


Damien_here,
Код: Выделить весь код
@Echo Off
SetLocal
Set Source=C:\temp

For %%A In ("%Source%\*.DAT") Do Call :_Proc "%%A"
GoTo :EoF

:_Proc
	Set FN=%~n1
	If Not "%FN:~9,1%"=="" Ren %1 "%FN:~0,5%tmplt%FN:~10%%~x1"

Последний раз редактировалось El Sanchez, 12-08-2012 в 10:52. Причина: fix

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

Отправлено: 20:31, 10-08-2012 | #2



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

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


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


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

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


El Sanchez,
спасибо за ответ!
При запуске приведенного кода возникала синтаксическая ошибка, добавил переменную в двойной процент - ошибка исчезла.

Цитата:
@Echo Off
SetLocal
Set Source=C:\temp

For %%A In ("%Source%\*.DAT") Do (
Set FN=%%~nA
If Not "%%FN:~9,1%%"=="" Call Ren "%%A" "%%FN:~0,5%%tmplt%%FN:~10%%%%~xA"
)

Имеется дополнительное условие к исходному условию - батник должен обрабатывать файл по факту его появления в каталоге A, то есть постоянно мониторить каталог на наличие в нем файлов, и при появлении переименовывать его и перемещать в каталог B?
Заранее благодарю за помощь!

Последний раз редактировалось Damien_here, 11-08-2012 в 13:18. Причина: разобрался с проблемой

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

Отправлено: 11:51, 11-08-2012 | #3


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


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

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


Для решения обозначенной проблемы с ожиданием файла воспользовался утилитой sleep.exe и бесконечным циклом.
В принципе вопрос можно считать решенным, всем спасибо!

Отправлено: 15:31, 11-08-2012 | #4


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

Ветеран


Contributor


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

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


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

Отправлено: 10:52, 12-08-2012 | #5


Пользователь


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

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


Всем привет нужно переименовать файл найдя его в папке по маске
маска поиска=моё значение
%маска%FAXV на %маска%FA1V %маска%FA2V %маска%FA3V и т д.
то есть ищу файл по маске %маска%FAXV и переименовываю его с %маска%FAXV на %маска%FA(нужная мне цифра 1 или 2 или 3 и т д. смотря что мне нужно)V
все файлы в папке такова вида %маска%FAXV.
подскажите как это сделать.

Отправлено: 12:51, 13-06-2017 | #6



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Переименование файлов с заменой символов по маске Constantant Скриптовые языки администрирования Windows 41 29-03-2016 03:40
CMD/BAT - [решено] Копирование файла по частичной маске tAnk3o3 Скриптовые языки администрирования Windows 6 29-12-2011 10:09
CMD/BAT - [решено] Переименование файла по данным из самого файла dark-------13 Скриптовые языки администрирования Windows 11 21-04-2011 18:08
CMD/BAT - [решено] Поиск файла по маске и по дате Баян Скриптовые языки администрирования Windows 2 14-03-2011 13:32
CMD/BAT - [решено] поиск файла по маске evilfelix Скриптовые языки администрирования Windows 11 23-09-2010 16:26




 
Переход