Windows のコマンド ラインで、ファイル名やフォルダ名に適した形式で現在の日付や時刻を取得するにはどうすればよいでしょうか? 質問する

Windows のコマンド ラインで、ファイル名やフォルダ名に適した形式で現在の日付や時刻を取得するにはどうすればよいでしょうか? 質問する

更新: 2016年になった今、特に地域設定の問題があるため、後方互換性を保つために特に説得力のある理由がない限り、PowerShellを使用することをお勧めしますdate。@npocmakaのhttps://stackoverflow.com/a/19799236/8479


ファイル名に入れることができる形式で現在の日時を取得するために使用できる Windows コマンドラインステートメントは何ですか?

たとえば、現在の日付と時刻を名前の一部にして、ディレクトリをアーカイブに圧縮する .bat ファイルが必要です。Code_2008-10-14_2257.zipマシンの地域設定に関係なく、これを実行する簡単な方法はありますか?

日付の形式については特に気にしません。理想的には yyyy-mm-dd ですが、単純なものであれば何でも構いません。

これまでのところ、私のマシンでは次の結果が得られていますTue_10_14_2008_230050_91:

rem Get the datetime in a format that can go in a filename.
set _my_datetime=%date%_%time%
set _my_datetime=%_my_datetime: =_%
set _my_datetime=%_my_datetime::=%
set _my_datetime=%_my_datetime:/=_%
set _my_datetime=%_my_datetime:.=_%

rem Now use the timestamp by in a new ZIP file name.
"d:\Program Files\7-Zip\7z.exe" a -r Code_%_my_datetime%.zip Code

これでも大丈夫ですが、少し不格好に感じます。理想的には、より簡潔で、前述の形式にしてください。

私は Windows Server 2003 と Windows XP Professional を使用しています。これを実現するために追加のユーティリティをインストールしたくありません (ただし、日付のフォーマットを適切に行うユーティリティがいくつかあることは認識しています)。

ベストアンサー1

見るMMDDYYYY 形式で現在の日付を取得するための Windows バッチ ファイル (.bat):

@echo off
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%a-%%b)
For /f "tokens=1-2 delims=/:" %%a in ('time /t') do (set mytime=%%a%%b)
echo %mydate%_%mytime%

24 時間形式または 24 軍形式で時刻を表示したい場合は、2 番目の FOR 行を次のように置き換えます。

For /f "tokens=1-2 delims=/:" %%a in ("%TIME%") do (set mytime=%%a%%b)

C:\date.bat
2008-10-14_0642です。

地域の日/月順序とは関係なく日付を取得したい場合は、ISO 順序であるため、「WMIC os GET LocalDateTime」をソースとして使用できます。

@echo off
for /F "usebackq tokens=1,2 delims==" %%i in (`wmic os get LocalDateTime /VALUE 2^>NUL`) do if '.%%i.'=='.LocalDateTime.' set ldt=%%j
set ldt=%ldt:~0,4%-%ldt:~4,2%-%ldt:~6,2% %ldt:~8,2%:%ldt:~10,2%:%ldt:~12,6%
echo Local date is [%ldt%]

C:>test.cmd
ローカル日付は [2012-06-19 10:23:47.048] です

おすすめ記事