Создание Уникального Имени Файла Из Пакетного Скрипта

Создание уникального имени файла из пакетного скрипта

В этом сообщении объясняется, как создавать файлы с уникальными именами из пакетных файлов. Нам понадобится это, когда мы запускаем какой-то скрипт, который записывает данные в файлы, и каждый раз, когда вам нужно однозначно называть файл, чтобы не было конфликта с ранее созданными файлами.

Одним из наиболее часто используемых методов для уникальных имен является добавление системного времени к именам. Давайте посмотрим, как мы можем реализовать это в пакетном файле Windows.

Чтобы создать уникальный файл с датой

Это полезно, если файл создается только один раз в день.
Пример. Предположим, вам нужно запустить dir и сохранить вывод в файле каждый день.

После запуска указанной команды создается новый файл с сегодняшней датой

Чтобы создать уникальный файл с датой и временем

Если вам нужно запустить скрипт несколько раз в день, просто использовать дату будет недостаточно. Добавление метки времени в имя файла гарантирует, что имя файла всегда уникально.

После запуска командного файла вы увидите новый файл, созданный с датой и временем в имени.

Создание каталога с уникальным именем с использованием даты

После запуска пакетного сценария, печать всех каталогов в папке показывает вновь созданную папку с датой в имени

Я использовал переменную окружения% random% для достижения аналогичного эффекта в прошлом. Я считаю, что он ограничен пятью цифрами.

C: \ Users \ pwood> echo% random%
20948

C: \ Users \ pwood> echo% random%
23935

Благодарим вас за поддержку командной строки.

Это хорошая идея. Спасибо Вуду за это.

Вышеупомянутый командный скрипт сгенерировал бы имя файла:
04-19-2018-15-13-54.20
MM-DD-YYYY-HH-MM-SS. SS

Как создать имя файла:
YYYY-MM-DD_HH-ММ-СС

Мне не нужны миллисекунды. Любая помощь будет оценена по достоинству.

> Как создать имя файла: YYYY-MM-DD_HH-MM-SS?

Попробуйте что-нибудь вроде:

REM dtstr должен указывать дату-время в формате yyyymmddThhmmss —
REM e. г. 20110325T090446, когда% date% — 25/03/2011, а% time% — 9: 04: 46,84
set dtstr =% date:

6,2%
set dtstr2 =% date:

6,2%
REM Заменить заготовку 0 (так, например, «9: 04: 46,84» станет «09: 04: 46,84»)
set dtstr =% dtstr: = 0%
set dtstr_long =% date:

echo% date%% time%
echo% dtstr%
echo% dtstr2%
echo% dtstr_long%

C: \> echo% date%% time%
14/05/2018 15: 02: 01.27

C: \> echo% dtstr%
20180514T150201

C: \> echo% dtstr2%
2018-05-14_15-02-01

C: \> echo% dtstr_long%
2018-05-14T15: 02: 01,27