DOTAB タブファイルによる繰り返し

書法

DOTAB command [filename]* [option]*

SHELLMODE

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

詳細

コマンドを入力ファイルの行の分だけ繰り返し実行する。
入力するタブファイルの行内の項目をコマンド展開し、実行する。 行が空行の場合は通常実行しない。
ファイル名を省略すると、標準入力を扱う。複数のファイル名を書くと、それらを順に処理する。

コマンド記述

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

&&&自身
&/ 無視する
&+ パイプ表現(|)
&$numberファイル名(c:\temp\test)
&numberパラメータそのまま(c:\temp\test.txt)
&!numberファイル名(test.txt)
&*numberファイル名(test)
&.numberファイル名(.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)は、 &-...引数置換)のインタフェースは次の通り。

機能番号ARGREP
置換表記
TSEXPR
略記
TSEXPR
変数名
説明
n %n; @n 1から順に入力項目に対応
0 %0; &0 ??gln 通算入力行番号
-1 %-1; @(-1) ??filename 入力ファイル名
-2 %-2; &(-2) ??fn 入力ファイル番号
-3 %-3; &(-3) ??ln 入力行番号
-4 %-4; &(-4) ??ix 通算処理番号
-5 %-5; &(-5) ??fc 入力項目数

コマンドの実行方法

コマンドの実行方法は次の三種類がある。
  1. 無名パイプ接続による実行(標準)
    コマンド記述内の全てのコマンドは平行して実行する。
  2. 中間ファイル生成による実行(-F)
    コマンド記述内のコマンドは、一つづつ順番に実行する。 パイプの接続には中間ファイルが用いられる。
  3. MDOSコマンド経由による実行(-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を利用して高速実行する
-S
空行に対しても実行する
-W[{0n|n}]
埋めこみ行番号の出力形式を指定する。デフォルトは-W08
-W 自由形式 -W→「123」
-Wn 固定幅スペース埋めこみ -W5→「  123」
-W0n 固定幅0埋めこみ -W05→「00123」
-Xpath
コマンドライン実行時のカレントパスを指定する
-Y[filename]
標準エラー出力をファイルに切り替える。 ファイル名の先頭に「+」を付けるとファイルに追記する。 ファイル名を省略すると、標準エラー出力を標準出力に切り替える。

用例

参考

DOITコマンドパラメータによる繰り返し実行
DOCMDコマンドラインを実行する

バージョン

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