it-swarm.com.de

Wie kann ich den Sekunden-Teil von TIME in cmd abrufen?

Ich versuche, ein cmd-Skript zu schreiben, das das aktuelle Datum und die aktuelle Uhrzeit abruft und so formatiert, dass sqlserver es als datetime eingeben kann.

Bisher habe ich:

@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
)

Dieser wird am 22.10.2010 ausgedruckt

Ich konnte nicht herausfinden, wie ich die Zeit in ein brauchbares Format bringen kann. Ich habe versucht, mit time /t zu arbeiten, aber es gibt nur die Stunden und Minuten an und ich brauche auch die Sekunden.

28
chama

Verwenden Sie die Pseudovariable %TIME%.

Sie können auch %DATE% im obigen Skript verwenden.

Beide haben die gleichen Einschränkungen, da sie von Ihrem Gebietsschema abhängen. Der Code ist nicht portierbar und Sie werden in anderen Umgebungen für Überraschungen sorgen. Aber so funktionieren Datum und Uhrzeit in cmd.

47
Joey

Alternativer Ansatz, bei dem% TIME% im Format H: MM: SS.FF und H im Bereich 0 - 23 vorliegt und mit einer Ziffer dargestellt werden kann (basierend auf diesem Artikel ):

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%
13
Stas Makutin

So habe ich mein Fledermaus-Skript gemacht:

@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

Sie können jetzt alle Echos entfernen und diese aus jeder Bat-Datei verwenden, indem Sie Folgendes eingeben:

call SetDateTimeVariables.bat

Beispiel: Archivverzeichnis erstellen und Speicherort speichern:

@echo off
SETLOCAL
call test2.bat
ENDLOCAL&(
    SET ARCHIVE_DIR="archive/%YYYY%%MM%%DD%%HH24%%MI%%SS%"
)
MKDIR "%ARCHIVE_DIR%"
7
ScrappyDev
echo %time:~-5%

http://ss64.com/nt/syntax-substring.html

die letzten 5 Zeichen von% time% sind immer seconds dot milliseconds

beispielausgabe:

33.84
0
johny why