Как я могу получить секундную часть TIME в cmd?
Я пытаюсь написать cmd script, который получает текущую дату и время и форматирует его таким образом, что sqlserver может ввести его как datetime
.
До сих пор у меня было:
@echo off
for /F "tokens=1-4 delims=/ " %%i in ('date /t') do (
set dow=%%i
set mon=%%j
set day=%%k
set yr=%%l
set mydate=%%j/%%k/%%l
)
Отпечатано 10/22/2010
Мне не удалось выяснить, как получить время в удобном для использования формате. Я пробовал работать с time /t
, но он дает только часы и минуты, и мне нужны секунды.
Ответы
Ответ 1
Используйте псевдо переменную %TIME%
.
Вы также можете использовать %DATE%
выше script.
Оба имеют те же ограничения, что и они зависят от вашего языка. Код не переносится, и вы будете удивлены в других средах. Но то, как работают дата и время в cmd.
Ответ 2
Альтернативный подход, в котором% TIME% находится в формате H: MM: SS.FF и H в диапазоне 0-23, и может быть представлено одной цифрой (на основе этой статьи):
set YYYY=%DATE:~10,4%
set MM=%DATE:~4,2%
set DD=%DATE:~7,2%
set HH=%TIME: =0%
set HH=%HH:~0,2%
set MI=%TIME:~3,2%
set SS=%TIME:~6,2%
set FF=%TIME:~9,2%
set dirName=%YYYY%%MM%%DD%
set fileName=%dirName%\%YYYY%%MM%%DD%_%HH%%MI%%SS%.tmp
echo %fileName%
Ответ 3
Вот как я начал делать свою летучую мышь script:
@echo off
For /f "tokens=2-4 delims=/ " %%a in ("%DATE%") do (
SET YYYY=%%c
SET MM=%%a
SET DD=%%b
)
For /f "tokens=1-4 delims=/:." %%a in ("%TIME%") do (
SET HH24=%%a
SET MI=%%b
SET SS=%%c
SET FF=%%d
)
echo %%DATE%%=%DATE%
echo %%TIME%%=%TIME%
echo %YYYY%-%MM%-%DD%_%HH24%-%MI%-%SS%-%FF%
echo %YYYY%/%MM%/%DD% %HH24%:%MI%:%SS%
echo %MM%/%DD%/%YYYY% %HH24%:%MI%:%SS%
echo YYYY=%YYYY%
echo MM=%MM%
echo DD=%DD%
echo HH24=%HH24%
echo MI=%MI%
echo SS=%SS%
echo FF=%FF%
pause
Теперь вы можете удалить все эхо-сигналы и использовать их из любого файла bat, набрав:
call SetDateTimeVariables.bat
Пример: создание каталога архива и сохранение местоположения:
@echo off
SETLOCAL
call test2.bat
ENDLOCAL&(
SET ARCHIVE_DIR="archive/%YYYY%%MM%%DD%%HH24%%MI%%SS%"
)
MKDIR "%ARCHIVE_DIR%"
Ответ 4
echo %time:~-5%
http://ss64.com/nt/syntax-substring.html
последние 5 символов% времени% всегда seconds dot milliseconds
Пример вывода:
33.84