Запустите этот пакетный код, и вы можете увидеть, как получить текущую дату, назначенную переменной окружения FolderDate
для использования в имени папки резервного копирования.
@echo off
rem Get the current local date and time in a region and language
rem independent format by using Windows Management Instrumentation.
for /F "skip=1 delims=." %%T in ('%SystemRoot%\System32\wbem\wmic.exe OS get localdatetime') do set "LocalDateTime=%%T" & goto ReformatDate
rem Convert the date and time string in format yyyymmddhhmmss like
rem 20151231150357 to a readable format with date only like 2015-12-31.
:ReformatDate
set "FolderDate=%LocalDateTime:~0,4%-%LocalDateTime:~4,2%-%LocalDateTime:~6,2%"
rem Output the date string for the backup folder and delete the 2 variables.
echo Date for backup folder is: %FolderDate%
echo.
set "LocalDateTime="
set "FolderDate="
pause
чтения, например, ответ на Find out if file is older than 4 hours in Batch file и ответы на Batch file to delete files older than N days для получения подробной информации о получении и дата и время строки форматирования.
Использование значения переменной окружения ДАТА переформатировать для имени папки в формат yyyy-mm-dd
будет гораздо быстрее, чем при использовании wmic
. Но использование DATE требует знания формата даты на используемой машине из-за зависимости от настроек региона и языка.
Чтобы понять используемые команды и как они работают, откройте окно командной строки, выполните там следующие команды и внимательно прочитайте все страницы справки, отображаемые для каждой команды.
echo /?
for /?
pause /?
rem /?
set /?
wmic /?
Также желательно, чтобы запустить wmic OS get localdatetime
из окна командной строки, чтобы просмотреть вывод этой командной строки, обработанный командой , для и, наконец, в результате получается строка даты в формате yyyy-mm-dd
для использования в имени папки резервного копирования.
Благодарим вас за это. Я получаю, где это происходит, но команда FOR не нужна для того, что мне нужно. Я действительно ценю помощь, хотя –
@DakotaZinn. Команда __FOR__ в ответе выше необходима для вывода вывода __wmic__, обычно записываемого в окно консоли, захваченного __FOR__ и уже усеченного в первый период, назначенного переменной окружения 'LocalDateTime'. Вам не нужно __FOR__ в вашем пакетном коде, поскольку вы используете непосредственно зависящие от региона переменные среды __DATE__ и __TIME__, как я уже сказал. Я не мог предложить решение с использованием __DATE__ и __TIME__, поскольку вы не писали о них, которые форматируют строки этих двух переменных на вашем компьютере. – Mofi