pshell コマンドというフロントコマンドを開発しました。
どんな使い方が出来るか、という視点で紹介します。
環境変数 PATHを現在時刻と共に表示する
◆pshell の場合 pshell echo $(date /t) `time /t` ${PATH} ◆通常コマンドの場合 echo %date% %time% %PATH% |
Linux シェルのような使い勝手
・バッククォートによるプロセス起動
・$() によるプロセス起動
・${} による環境変数展開
が可能となります。これが出来る事により、pshell をフロントコマンドとして
利用する事で、Windows の全てのコマンドに対して、引数にコマンドの
戻り値を渡すことが出来ます。
以下のコマンドを利用すると、わかりやすいかもしれません。
pshell echo $(dir /b) |
カレントディレクトリの全てのファイルを、引数として echo コマンドに渡して
います。
上記は Windows フォルダにある全ての log ファイルを echo コマンドの引数に
渡しています。 また pshell はパイプとしても利用可能です。
pipe として利用する
Windows の date コマンドは貧弱なので、良いサンプルを標準コマンドでは
記述できないのですが、
dir /b | pshell find "`echo txt`" |
上記のようにコマンドの出力結果を、find に渡すことも可能となります。
他にも「現在時刻に更新されたファイル・ディレクトリを出力する」には、
dir| pshell find "`time /t`" |
とすることで可能となります。
doskey で既知のコマンドをオーバーライドする
doskey を使うことにより、既知のコマンド名を用いながら pshell コマンドを
通す事ができます。
doskey echo=pshell echo $*
上記のように定義する事により echo $(dir /b) と入力するだけで pshell を
通したことになります。cygwin を必要としないのでけっこう便利です。
但し doskey はパイプには利用できないので、バッチファイルなどの代替手段を
必要とする場合があります。
0 コメント:
コメントを投稿