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

Показать сообщение отдельно

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


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

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


Цитата megaloman:
Ранее не размещал, решил, что не интересно. Вы молчали.
Вот вариант, который на входе понимает файл/папку с датой в начале названия с произвольными разделителями или без оного, и вставляет дату с нужным Вам разделителем.

Код:
@Echo Off
cls & If "%~1"=="" Exit /B
Set "Delim="
Set "Delim=-"
FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETime /VALUE') DO Set "CurDate=%%d"
Set "CurDate=%CurDate:~0,4%%Delim%%CurDate:~4,2%%Delim%%CurDate:~6,2%"
Set "In=%~1"
If "%In:~-1%"=="\" Set "In=%In:~0,-1%"
If "%~2"=="" Call :MyReName "%In%" &Exit /B
Call :MyReName "%In%" "Out"
If Not Exist "%In%\*.*" (
Copy "%In%" "%~dp2%Out%"
) Else (
Xcopy "%In%\*.*" "%~dp2%Out%" /H /Y /C /R /D /E /V /I /Q
)
Exit /B
:MyReName
Set "In1=%~nx1"
Set "In2=%In1%"
Echo %~nx1| >nul 2>nul FindStr /X /R /C:"^20[0-4][0-9][0-1][1-9][0-3][0-9].*$" &&Set "In1=%In1:~8%"
Echo %~nx1| >nul 2>nul FindStr /X /R /C:"^20[0-4][0-9][^0-9][0-1][1-9][^0-9][0-3][0-9].*$" &&Set "In1=%In1:~10%"
If "%In1%"=="%In2%" (Set "In1=%CurDate% %In1%") Else (Set "In1=%CurDate%%In1%")
If "%~2"=="" (Ren "%In%" "%In1%") Else (Set "%~2=%In1%")
Exit /B
»
Не смог отделить расширение...
Можно сделать чтобы дата с вставлялась/менялась в конце имени файла/папки перед расширением (с пробелом между названием и датой) + три варианта текста после даты (Зам, Ответ, Запрос)?

Могут быть варианты файлов/папок (расширения для примера):
Имя файла 2022.03.28.docx
Имя файла 2022.03.28 Зам.xls
Имя файла 2022.03.28 Ответ.txt
Имя файла 2022.03.28 Запрос

Отправлено: 21:32, 28-03-2022 | #10