2010-11-22 12 views
22

私は、現在の日付と時刻を取得し、sqlserverがdatetimeとして入力できるようにフォーマットするcmdスクリプトを作成しようとしています。cmdでTIMEの秒の部分を取得するにはどうすればよいですか?

これまでのところ、私が持っている:

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

これは私が使用可能な形式に時間を取得する方法を見つけ出すことができていない2010年10月22日

を出力します。私はtime /tで作業を試みましたが、それは時間と分だけを与えるだけで、秒も必要です。

答えて

38

擬似変数%TIME%を使用してください。

上記のスクリプトで%DATE%を使用することもできます。

どちらも、ロケールに依存して同じ制限があります。このコードは移植性がありません。他の環境でも驚きを感じます。しかし、それはcmdの日時がどのように機能するかです。ここで

+0

あなたに感謝。これを解析できる方法はありますか?時間、分、秒を別々の変数に入れることができますか? – chama

+0

あなたはあなたの質問にすでにコードを書いているので、あなたはすでにその答えを知っています。あなたのロケールが時間部分を分離するために使用するものは ':'で区切ります。 – Joey

+0

私は最後を忘れていた)。なぜそれが働いていなかったのか分からなかったのも不思議ではない... もう一度ありがとう! – chama

7

は、私は私のバットスクリプトをやって行きました方法です:

@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%" 
12

%TIME%は形式になります。 H:MM:範囲0でSS.FFおよびH - 23と一桁で表現することができるが(this articleに基づく):

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% 
0
echo %time:~-5% 

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

%時間%の最後の5つの文字常にseconds dot milliseconds

の出力例です:

33.84 
+0

それは私に秒と*ミリ秒を与えます、これは必要なものを得ることができません。 – ScrappyDev

+1

良いサイトでは、%date:/ =%_%時間:〜0,2%_%時間:〜3,2% – felixmc

関連する問題