@ Способ LotPings длится много времени, если PowerShell не загружен.
Итак, я предоставлю намного более быстрый и понятный способ в пакетном файле, который требует delayedexpansion
:
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1-2" %%a IN ('forfiles /M file.ext /C "cmd /C echo @fdate @ftime"') do (
set line1=%%a
set line2=%%b
set line1r=!line1:/=-!
set line2r=!line2::=-!
rename "file.ext" "file!line1r!!line2r!.ext"
)
rem NOTE: Date format is DD-MM-YYYY. Time format is HH-MM-SS.
Давайте разберемся с этим:
for /f ...
я вам хорошо знаю.
Команда forfiles /M file.ext /C "cmd /C echo @fdate @ftime"
означает запуск команды (/C
) для файла, указанного в/M
опция (file.ext
)."cmd /C echo @fdate @ftime"
означает открыть новый cmd и выполнить команду, указанную в строке, а затем завершиться.@fdate
- это дата последнего изменения файла, а @ftime
- время последнего изменения файла.
Мы устанавливаем переменные line1
и line2
для каждого из @fdate
и @ftime
и затем мы вносим в них некоторые изменения формата.
Наконец, мы переименовываем file.ext
в fileDD-MM-YYYYHH-MM-SS.ext
.
Для получения дополнительной информации введите for /? & forfiles /?
в новом cmd.
Надеюсь, это поможет вам, так как это быстрее.