Вопрос или проблема
Пакет Windows,
Как переименовать каталог в дату и время с секундами
Текущий диск и каталог — S:\1 = резервная копия.
через пакет, Как автоматизировать, Как переименовать каталог, а не файл?
что-то вроде — Переименовать S:\1 S:\20171022_131459
2017 год
10 октября
22 число
13 часов
14 минут
59 секунд
Ниже выполнялось в командной строке с одним %
на файле с именем hope.txt, а не на каталоге
ren hope.txt 20171022.txt
.
for /f "tokens=1-4 delims=- " %d in ("%date%") do rename "hope.txt" %d%e%f.txt
и в части 2 (время)
Секунды отсутствуют в имени и
это не каталог, а файл
с именем hope.txt с часами и минутами.
rename "hope.txt" 1314.txt
.
for /f "tokens=1-2 delims=: " %G in ("%time%") do rename "hope.txt" %G%H.txt
—
Ниже один из ответов на переименование каталога
С C:\99
На _ C:\YearMMDD_hhMMssFF
(Год Месяц День _ часы Минуты секунды Доля 1 секунды)
C:\99 может быть именем файла
C:\99 может быть именем каталога
На Windows XP 32 бита, ren работает.
(ren = переименовать Каталог или Файл)
На этом компьютере у нас 3 разделителя – : .
Формат даты и времени:
Дата ______ время
2017-10-23 19:28:13.01
a___ b__c__d__e__f__g
Ответ, командная строка:
for /f "tokens=1-7 delims=-:. " %a in ("%date% %time%") do ren c:\99 %a%b%c_%d%e%f%g
Каталог C:\99
Каталог C:\20171023_19473074
.
Ответ, пакетный файл с двойным %%:
for /f "tokens=1-7 delims=-:. " %%a in ("%date% %time%") do ren c:\99 %%a%%b%%c_%%d%%e%%f%%g
Каталог C:\99
Каталог C:\20171023_19480420
—
Думаю, это то, что вам нужно:
for /f "tokens=2-7 delims=/:. " %a in ("%date% %time%") do ren dir1 %c%ab%b_%d%e%f
Вывод выглядит так:
ren dir1 201710b22_201108
В пакетном файле вам нужно добавить дополнительные % , поэтому эта строка становится:
for /f "tokens=2-7 delims=/:. " %%a in ("%date% %time%") do ren dir1 %%c%%ab%%b_%%d%%e%%f
.
Ответ или решение
Для переименования директории в формате даты и времени с отображением секунд в Windows можно использовать пакетный файл. Этот подход позволяет автоматизировать процесс, исключая необходимость вручную вводить команды каждый раз. В данной инструкции я опишу, как создать такой пакетный файл, используя параметризацию через for
для обработки системных переменных %date%
и %time%
.
Шаг 1: Открытие текстового редактора
- Откройте любой текстовый редактор, например, Блокнот.
- Создайте новый файл.
Шаг 2: Писание кода пакетного файла
Для переименования директории S:\1
в формате YYYYMMDD_HHMMSS
используйте следующий код:
@echo off
setlocal
:: Получение даты и времени
for /f "tokens=1-4 delims=- " %%d in ("%date%") do (
set year=%%d
set month=%%e
set day=%%f
)
for /f "tokens=1-3 delims=:." %%a in ("%time%") do (
set hours=%%a
set minutes=%%b
set seconds=%%c
)
:: Форматирование имени новой папки
set "newname=%year%%month%%day%_%hours%%minutes%%seconds%"
:: Переименование директории
ren "S:\1" "%newname%"
endlocal
exit /b
Шаг 3: Сохранение файла
- Сохраните файл с расширением
.bat
, например,rename_directory.bat
. - Убедитесь, что при сохранении выбрали "Все файлы" в выпадающем меню формата, чтобы избежать сохранения его как текстового файла.
Шаг 4: Запуск пакетного файла
- Дважды кликните на сохранённый файл, чтобы выполнить его.
- После выполнения директория
S:\1
будет переименована вYYYYMMDD_HHMMSS
, где вместоYYYY
будет год,MM
— месяц,DD
— день,HH
— часы,MM
— минуты, иSS
— секунды.
Примечания
- Убедитесь, что имя директории
S:\1
существует перед запуском скрипта. В противном случае командаren
выдаст ошибку. - Формат даты и времени может отличаться в зависимости от региональных настроек системы, поэтому при необходимости могут потребоваться дополнительные правки в коде.
- Если вы хотите добавлять дополнительный текст к имени директории (например, префикс или суффикс), легко модифицировать строку
set "newname=%year%%month%%day%_%hours%%minutes%%seconds%"
соответственно.
Заключение
Создание пакетного файла для автоматического переименования папок по заданному формату — это эффективно и удобно. Используя вышеописанные шаги, вы сможете настроить переименование каталогов с актуальной датой и временем, что особенно полезно для резервного копирования и управления данными.