Windowsのcmdでdatetimeを印刷する


1

Linuxでは date +"%Y%m%d%H%M%S" 日付と時刻のラベルを印刷します。 Windowsではどうやって同じようにできますか?

見つけた date /t 戻る 25/02/2016。しかし、私はそれを次のようにフォーマットしてもらいたいのです。 20160225155958

回答:


2

それはできますが、それほどきれいで整然としたことではありません。

echo %date:~-4%%date:~3,2%%date:~0,2%%time:~0,2%%time:~3,2%%time:~6,2%

私にとってこれは戻ります:

enter image description here

これはロケール固有のものであり、実際にはちょっとしたハックです。それは単に次のものを連結したものです。

  • DATEの最後の4文字
  • 日付の半ば、文字3から始まる2文字
  • 日付の途中、文字0から始まる2文字
  • 真ん中、char 0から始まる2文字
  • 時間の途中、char 3から始まる2文字
  • 時間の途中、char 6から始まる2文字

1
ロケールに依存しない解決策については私の答えを参照してください。
DavidPostill

あなたの答えは現地時間には戻ってこないのですが…
DavidPostill

@ DavidPostill?はい、スクリーンショットを撮ったときからわずか5秒しかかかりません。大時計は私の現地時間です;)
Jonno

ああ。 OK。イギリスの時間に合った投稿日を見ました;)
DavidPostill

@DavidPostill私がスクリーンショットを撮ったときに暗かったという事実がなかったとしても、一見してちょっと私を混乱させました。あなたの答えは+1、wmicが何を提供できるのか本当によく理解してください。
Jonno

1

20160225155958のようにフォーマットしたい

runningの出力形式は次のとおりです。

date +"%Y%m%d%H%M%S"

Linux上で。

を使う %date% 別の回答で指摘されているように、解決策を提供することは、OSロケール、地域、および言語設定に依存します。

を使う wmic一方、OSロケール、言語、またはユーザーが選択した日付形式(コントロールパネル/地域)とは無関係に機能します。

次のバッチファイルでは wmic OPの指定されたフォーマットで日付と(現地の)時間を検索するので、を使用するソリューションの不利益を被りません %date%

getdate.cmd:

@echo off
setlocal
rem use findstr to strip blank lines from wmic output
for /f "usebackq skip=1 tokens=1-6" %%g in (`wmic Path Win32_LocalTime Get Day^,Hour^,Minute^,Month^,Second^,Year ^| findstr /r /v "^$"`) do (
  set _day=00%%g
  set _hours=00%%h
  set _minutes=00%%i
  set _month=00%%j
  set _seconds=00%%k
  set _year=%%l
  )
rem pad with leading zeros
set _month=%_month:~-2%
set _day=%_day:~-2%
set _hh=%_hours:~-2%
set _mm=%_minutes:~-2%
set _ss=%_seconds:~-2%
set _date=%_year%%_month%%_day%%_hh%%_mm%%_ss%
echo %_date%
endlocal

上記のバッチファイルは、次の例の修正版です。 取得日

出力

F:\test>date /t && time /t
25/02/2016
16:49

F:\test>getdate
20160225164929
F:\test>

比較のためのCygwin

DavidPostill@Hal /f/test
$ date +"%Y%m%d%H%M%S"
20160225164938

参考文献

  • Windows CMDコマンドラインのA〜Zインデックス - Windowsのcmd行に関連するすべてのものの優れた参照。
  • / fの場合 - 他のコマンドの結果に対してコマンドをループします。
  • 取得日 - OSのロケール、言語、またはユーザーが選択した日付形式(コントロールパネル/地域)から独立した日付と時刻を表示します。
  • 変数 - 変数の一部(部分文字列)を抽出します。
  • wmic - Windows Management Instrumentationコマンド。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.