CALL 文パラメータ中の特殊文字
随分日にちが空いてしまいました。
CALL 文パラメータ中の特殊文字について
(1) /? があればヘルプを表示
(2) | があればcallが実行されない
(3) < または > があれば次の1ワードがバッチスクリプトに渡らない
ということのようです。
(註: | < > の場合はリダイレクトやパイプと解釈されないよう適切に変数値としてまたは ^ でエスケープして指定された場合)
また、call バッチファイル名 や call :ラベル名 だけではなく、call CMDビルトインコマンド や call 実行ファイル名、call 文書ファイル名 等としても、コマンドプロンプトから直接ファイル名などを入れたのと同じように実行されますね。
あと、dir ^< や dir ^> の動作も謎。よくわからない。
dir ^< だと一部のファイル・ディレクトリだけが表示されるが、どういう条件のものが表示されるのかわからない。ディレクトリ中の物理位置とかに関係するのだろうか。
また、dir ^< | more だと、「コマンドの構文が誤っています」になる。