コマンドプロンプトで現在時刻を表示する
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%