今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

コマンドプロンプトで現在時刻を表示する

Windows のバッチファイルを実行し、その標準出力をファイルに記録したいことがある。そういう場合、出力先をファイルにリダイレクトしておけば、後からファイルを参照し、実行結果を確認できる。
たまたま、今やろうとしていることは、複数のコマンドを連続的に実行するバッチファイル。それぞれのコマンドにどれだけ時間を要したのかを調べるため、コマンドとコマンドの間に TIME コマンドを追加しようと考えた。そこで、まずはコマンドプロンプトで試してみる。

C:\>time
現在の時刻: 15:23:03.38
新しい時刻を入力してください:

C:\>

単純に TIME コマンドを実行するだけだと入力待ちになる。そこでオプションを調べてみる。

C:\>help time
システム時刻を表示または設定します。

TIME [/T | 時刻]

パラメータの指定がなければ、現在の設定が表示され、新しい時刻を入力できる
プロンプトになります。変更しない場合は、Enter キーを押してください。

コマンド拡張機能を有効にすると、TIME コマンドは、/T スイッチを
サポートするようになります。このスイッチを指定すると、現在の時刻
だけが表示され、新しい時刻を入力するためのプロンプトは表示されません。

C:\>

さっそく試してみる。

C:\>time /t
15:25

C:\>

えっと、秒はどこ???(^^;
/T スイッチだと秒が表示されないので、使えないことが判明。。。しかたなく、CR+LF だけを書き込んだ crlf.txt ファイルを作成して、TIME コマンドに食わせるようにした。そして、以下が、その出力結果。

C:\>time  0<crlf.txt
現在の時刻: 15:26:13.73
新しい時刻を入力してください:

C:\>java -jar hoge.jar
C:\>time  0<crlf.txt
現在の時刻: 15:26:18.65
新しい時刻を入力してください:
    :

ダサいし。。。orz
追記:id:tpircs さんからの情報でステキに解決。(^^)

echo %time%