Bat - добавить дату к имени

Samr

Новый пользователь
Сообщения
2
Реакции
0
Баллы
1
Здравствуйте.
Есть папка, в которую падают .txt файлы в течении дня.
В этой папке лежат файлы с разными именами, пример:
12345.txt
inv01.txt
prihod.txt
02-04-21 prihod 01.txt
02-04-21 invst.txt
_02-04-21 invst02.txt

Нужно сделать так, что бы bat-ник при запуске, добавлял ко всем файлам в начале текущую дату в формате ДД-ММ-ГГ и не трогал файлы у которых уже есть дата.
т.е. добавить даты только к этим файлам:
12345.txt
inv01.txt
prihod.txt
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,575
Реакции
6,020
Баллы
798
Здравствуйте, Samr!
Добро пожаловать на SafeZone.

CMD/BATCH:
@echo off
SetLocal EnableExtensions

:: путь к папке
set src=c:\test

For /F "Tokens=1 Delims=.+-" %%i In ('WMIC OS Get LocalDateTime^|Find "."') Do Set DateTime=%%i
Set DD=%DateTime:~6,-6%
Set MM=%DateTime:~4,-8%
Set YY=%DateTime:~2,-10%
Set dt=%DD%-%MM%-%YY%

for /f "delims=" %%a in ('dir /b /a-d "%src%\*.txt" ^| findstr /RV "[0-9][0-9]-[0-9][0-9]-[0-9][0-9]"') do (
  ren "%src%\%%a" "%dt% %%a"
)
 

Сергій

Разработчик
Сообщения
549
Реакции
283
Баллы
368
(Обычно нужна не дата запуска батника, а дата создания интересуемого файла.)
 

Samr

Новый пользователь
Сообщения
2
Реакции
0
Баллы
1
Здравствуйте, Samr!
Добро пожаловать на SafeZone.

CMD/BATCH:
@echo off
SetLocal EnableExtensions

:: путь к папке
set src=c:\test

For /F "Tokens=1 Delims=.+-" %%i In ('WMIC OS Get LocalDateTime^|Find "."') Do Set DateTime=%%i
Set DD=%DateTime:~6,-6%
Set MM=%DateTime:~4,-8%
Set YY=%DateTime:~2,-10%
Set dt=%DD%-%MM%-%YY%

for /f "delims=" %%a in ('dir /b /a-d "%src%\*.txt" ^| findstr /RV "[0-9][0-9]-[0-9][0-9]-[0-9][0-9]"') do (
  ren "%src%\%%a" "%dt% %%a"
)

Спасибо! работает
 
Сверху Снизу