У меня есть скрипт, который переименовывает файлы, добавляя метку времени в качестве префикса к текущему имени файла. Файл с отметкой времени выглядит так:
20170407_1030.file1.txt
Я запускаю этот скрипт в папке после работы с некоторыми файлами. Проблема в том, что как только у файла уже есть временная метка, добавленная к его имени, в следующий раз, когда я запускаю скрипт, он добавляет другую временную метку к имени файла. Вместо этого, если файл уже имеет временную метку в своем имени, я хочу заменить ее обновленной временной меткой.
Для этого я пытаюсь определить имена файлов, которые уже содержат временную метку, и, если это так, заменить ее обновленной временной меткой.
Мой скрипт для этого сейчас выглядит так:
setlocal enabledelayedexpansion
for /f "delims=|" %%F in ('dir /b %cd%\*.*') do (
set "MDate=%%~tF"
set "Patern=*_*."
set "TimeStamp=!MDate:~6,4!!MDate:~0,2!!MDate:~3,2!"
ren "%%~nF%%~xF" "!TimeStamp!-%%~nF%%~xF"
)
exit
Изменить: извините, что не предоставил дополнительную информацию. Я провел некоторое исследование и не могу найти способ сопоставить маски в данном образце. Я знаю, как заменить предопределенные шаблоны или как сопоставить маски, такие как ren *.png *.jpg
.