it-swarm-ru.tech

Текущая дата в имени файла

У меня есть запланированный сценарий резервного копирования, который создает дамп базы данных. Как я могу добавить дату и время к имени файла?

Я говорю о Windows и CMD.

15
Bogdan Gusiev

В командной строке и командных файлах вы можете использовать %date% а также %time%, чтобы вернуть дату и время соответственно. Дата работает нормально, но возвращаемое значение времени содержит двоеточия, которые недопустимы для использования в именах файлов, но есть способ удалить их.

Используйте что-то вроде:

COPY file.txt file_%time:~0,2%%time:~3,2%%time:~6,2%_%date:~-10,2%%date:~-7,2%%date:~-4,4%.txt

Это создаст имя файла, такое как file_172215_01062009.txt

pdate: В комментариях ниже есть интересные поводы для этой команды, а также некоторые потенциальные проблемы, которые вы можете избежать.

21
aalaap

Использовать %DATE% и ​​/ или %TIME переменные окружения, необязательно заменяющие символы, которые не допускаются в именах файлов, используя %name:from=to% (%TIME::=% удалит все двоеточия).

 теория "эхо% дата% 
 2009-06-01 
 
 теория" эхо% время% 
 16: 30: 41,46 
 
 теория "эхо% времени :: =% 
 163052,17 
 
 теория" эхо% времени :: =,% 
 16,30,58,68 
 
 Теория "Эхо-резервное копирование-% date% -% time :: = -%. Zip 
 Backup-2009-06-01-16 -31-18,82.Zip 
14
user1686

Единственный надежный способ получить соответствующую дату независимо от региональных настроек - это решение от foxidrive @ https://stackoverflow.com/questions/11037831/filename-timestamp-in-windows-cmd-batch-script знак равно

@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"

set "datestamp=%YYYY%%MM%%DD%" & set "timestamp=%HH%%Min%%Sec%"
set "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
echo datestamp: "%datestamp%"
echo timestamp: "%timestamp%"
echo fullstamp: "%fullstamp%"
pause
4
Eric Ouellet

Используйте переменную% DATE% в имени файла.

Существует также переменная% TIME%, но она содержит символы, не допускаемые в имени файла.

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

echo "testfile" >> backup-%DATE%.txt
1
Frode Lillerud