2019年8月29日木曜日

Windowsコマンドプロンプト:プロンプト変更&処理実行時間計測

コマンドプロンプトのプロンプト変更と便利な使い方


 コマンドプロンプトを起動すると、プロンプトが表示されると思いますが、アイディア次第でこのプロンプトを変更するとちょっとした便利な使い方が出来ることもあります。

 変更できる(表示できる)内容は以下の通り(詳細はヘルプ参照の事)

  • ユニーク文字列(以下記号を除く)
  • 環境変数(実は%%で括って使用可
  • $A   & (アンパサンド)
  • $B   | (パイプ)
  • $C   ( (左かっこ)
  • $D   現在の日付
  • $E   エスケープ コード (ASCIIコード27)
  • $F   ) (右かっこ)
  • $G   > (不等号 (より大))
  • $H   バックスペース (直前の文字を削除)
  • $L   < (不等号 (より小))
  • $N   現在のドライブ
  • $P   現在のドライブとパス
  • $Q   = (等号)
  • $S     (空白)
  • $T   現在の時刻
  • $V   Windows のバージョン番号
  • $_   キャリッジ リターンとラインフィード
  • $$   $ (ドル記号)
(コマンド拡張すると以下も可能)
  • $+   PUSHDの階層数で+表記
  • $M    ネットワークドライブ→リモート名


変更方法:


 コマンドプロンプトにて、コマンド「prompt」の後に上記オプションを組み合わせて実行。

 例)ドライブとパス名の後にスペース開けてカッコを付けたユーザー名とスペース開けてシャープ(#)を表示するプロンプトへ変更(UNIX風?)

 prompt $P$S$C%USERNAME%$F$S#
 ↓(変更後の結果プロンプト)
 C:\Temp (TestUser) #
 
 ユーザー名が長かったりパスが深かったりするとプロンプトだけでかなり右の方にカーソルが行ってしまうので不便かもしれないですね。


実用例:


 夜中に時間のかかる処理を実行して帰る時に、プロンプトを日時へ変更しておくとコマンド終了した日時を表示させたままのコマンドプロンプトを残しておくことが出来ます。

 prompt $D-$T$S#
 

 1行目が上記設定コマンド行です。

 最初のpingは失敗例です。
 コマンドを入力している時間も経過してしまったため、
  2019/08/29-14:00:44.99 #ping -n 11 localhost > NUL 2>&1
  ↓
  2019/08/29-14:01:36.68 #
 約52秒も経ってます。。。
 -n 11 なので、約10秒になるはずですので。

 二回目と三回目のpingで、約10秒ちょいの時間経過になっていることがわかると思います。これは、一回目のコマンドを上キー「↑」で履歴を呼び出して再実行(コマンド入力時間を最小化)した結果です。コピペで実行しても同じことはできます。

 このような方法で、あらかじめコマンドプロンプトを日時に変更しておくことで、コマンド実行開始時間(厳密には前回のプロンプトが復帰した時間)から、コマンド実行後のプロンプトが復帰した時間が出せるので、経過時間を知ることが出来ます。

 時間のかかる処理(夜中の大容量コピーやバックアップ、変換など)を走らせて翌日まで放置しておく場合や、(ECHO ONしておけば)バッチプログラムでの一連処理においてどこで時間がかかっているのかを画面に残して確認し日々の効率化や高速化に役立てれればと思います。

 最後に。
 元に戻す場合は、「prompt」を空打ちしてください。
 prompt


- PDS PIS 研究室 室長 -

0 件のコメント:

コメントを投稿