DOIT コマンドラインによる繰り返し実行

書法

DOIT command [param]* [option]*

SHELLMODE

@記述、!記述、^記述、#記述

詳細

コマンドをパラメータの分だけ繰り返し実行する。
通常パラメータはファイル名を与るので、すべてのファイルに対して、コマンドを実行する機能となる。

コマンド記述

コマンドは必ず第一パラメータとして記述しなければならない。
コマンドは、最終的に、コマンドラインとなるが、それを組み立てる簡単な置換法が用意されている。

&&&自身
&/ 無視する
&+ パイプ表現(|)
&$ ファイル名(c:\temp\test)
&# パラメータそのまま(c:\temp\test.txt)
&! ファイル名(test.txt)
&* ファイル名(test)
&. ファイル名(.ext)
&:envname;環境変数
&(tsexpr)TSEXPRの実行結果。
&-repstr&-以降を引数置換する
&o リダイレクト表現(>)
&i リダイレクト表現(<)
&a リダイレクト表現(>>)
&d 二重引用符(")。単純な置き換え
&s 引用符(')。単純な置き換え
&D 二重引用符(")。重複解釈処理をする
&S 引用符(')。重複解釈処理をする
&e esc
&t tab
&n crlf
&L 1から始まるパラメータ番号
& 無視する

&D&Sは、引用符の解釈のために特殊な機能を持っている。

&D&Dの間に現れた"は、""に置き換えて出力する。この間に現れた&d""に変換される(単なる置き換えコードだから)。
&D&#&Dと書いたとき、パラメータがabc"defならば、 "abc""def"と置きかえる。

&S'に対して同様に働く。

残念ながら、この機能は、ネスティングをしないので、&Dの中で、 &Sを使用しても、外側の&Dの機能しか働かない。 このとき、&S&sと同様にただの置換となる。

&(TSEXPR)&-...引数置換)でのインタフェースは以下の通り

引数番号引数置換TSEXPR略記変数名説明
0 %0; &0 ??ix 1から始まるパラメータ番号
1 %1; @1 ??param パラメータ
2 %2; &2 ??paramc パラメータの数

コマンドの実行方法

コマンドの実行方法は次の三種類がある。
  1. 無名パイプ接続による実行(標準)
    コマンド記述内の全てのコマンドは平行して実行する。
  2. 中間ファイル生成による実行(-F)
    コマンド記述内のコマンドは、一つづつ順番に実行する。 パイプの接続には中間ファイルが用いられる。
  3. DOSコマンド経由による実行(-C)
    コマンド記述をMS-DOSのCMD.EXEに与えて実行する。 この場合だけ、MS-DOSバッチ処理の呼び出しも可能である。

コマンド文字列出力

コマンドを実行する変わりに、完成したコマンド文字列をそのまま出力する機能がある(-E、-O)。
-Eを使用すれば、標準出力し、-Oを指定すればファイルへ書き出せる。 簡単なファイル名を使ったスクリプタとして使用することが出来る。

条件付実行

コマンドの実行に先だって、それを実行するか否かを決定できる(-P)。
コマンド文字列出力(-E、-O)を指定しているときは、コマンド文字列を出力するか否かを決定する。

OPTION

-C
DOS窓のCMD.EXE経由でコマンド実行
-E
実行せずに展開して標準出力へ出力
-F
中間ファイルを用いた実行方法で実行
-Ofilename
実行せずに展開して指定のファイルに出力
-Ptsexpr
tspexrを評価して、戻り値が真の場合だけ、実行あるいは展開を行う
式の戻り値は論理型であること。その他のコマンド中の&()と同じ条件
-Q
環境変数TS_NOWINDOWを利用して高速実行する
-W[0n|n]
埋めこみ行番号の出力形式を指定する。デフォルトは-W08
-W 自由形式 -W→「123」
-Wn 固定幅スペース埋めこみ -W5→「  123」
-W0n 固定幅0埋めこみ -W05→「00123」
-Xpath
コマンドライン実行時のカレントパスを指定する
-Y[filename]
標準エラー出力をファイルに切り替える。 ファイル名の先頭に「+」を付けるとファイルに追記する。 ファイル名を省略すると、標準エラー出力を標準出力に切り替える。

用例

参考

DOTABタブファイルによる繰り返し実行
DOCMDコマンドラインを実行する

バージョン

Ver 1.032012/08/04エラー出力の追記モード
Ver 1.022012/06/27テンプレート末の「\」扱いの不具合を修正
Ver 1.012012/06/11オプション Y 導入
Ver 1.00初版