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

<p>у меня есть запланированный сценарий резервного копирования, который создает дамп базы данных. как я могу добавить дату и время к имени файла?</p><p>я говорю о windows и cmd.</p>

<p>в командной строке и командных файлах вы можете использовать <code>%date%</code> а также <code>%time%</code>, чтобы вернуть дату и время соответственно. дата работает нормально, но возвращаемое значение времени содержит двоеточия, которые недопустимы для использования в именах файлов, но есть способ удалить их.</p><p>используйте что-то вроде:</p><pre><code>copy file.txt file\_%time:~0,2%%time:~3,2%%time:~6,2%\_%date:~-10,2%%date:~-7,2%%date:~-4,4%.txt </code></pre><p>это создаст имя файла, такое как <code>file\_172215\_01062009.txt</code></p><p><em>pdate:</em> в комментариях ниже есть интересные поводы для этой команды, а также некоторые потенциальные проблемы, которые вы можете избежать.</p>

<p>использовать <code>%date%</code> и / или <code>%time</code> переменные окружения, необязательно заменяющие символы, которые не допускаются в именах файлов, используя <code>%name:from=to%</code> (<code>%time::=%</code> удалит все двоеточия).</p><pre> теория "эхо% дата% 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 </pre>

<p>единственный надежный способ получить соответствующую дату независимо от региональных настроек - это решение от foxidrive @ <a href="https://stackoverflow.com/questions/11037831/filename-timestamp-in-windows-cmd-batch-script">https://stackoverflow.com/questions/11037831/filename-timestamp-in-windows-cmd-batch-script</a> знак равно</p><pre><code>@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 </code></pre>

<p>используйте переменную% date% в имени файла.</p><p>существует также переменная% time%, но она содержит символы, не допускаемые в имени файла.</p><p>вот пример записи строки текста в новый файл, в имени которого у созданного файла есть дата и время.</p><pre><code>echo "testfile" >> backup-%date%.txt </code></pre>