Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Переименование файла по маске. (http://forum.oszone.net/showthread.php?t=240364)

Damien_here 10-08-2012 18:24 1968175

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

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

El Sanchez 10-08-2012 20:31 1968232

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"


Damien_here 11-08-2012 11:51 1968436

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 15:31 1968502

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

El Sanchez 12-08-2012 10:52 1968840

Цитата:

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

Damien_here, не исчезла, мы оба с вами ошиблись, пост #2 исправил.

DonQuixote 13-06-2017 12:51 2744169

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


Время: 02:13.

Время: 02:13.
© OSzone.net 2001-