概要

BATファイルでヒアドキュメントっぽいことを実現します。
これを使えばいろいろと便利になりそうです。※実装には、やんごとなき理由でJScriptを使用しています。
(DOS-BAT の for /f で回すと、空行が間引かれてしまうというアレの所為)

使い方

BATファイル内の、到達できない場所(exitやgoto :eofの後ろなど)にヒアドキュメントっぽいもの(ニアドキュメント)を記述します。
ニアドキュメントの範囲は、任意の文字に「>」(始端)と「<」(終端)を付与し指定します。

1
2
3
4
5
6
7
rem 始端・終端をあらわす文字列として「HERE」を使用する場合
HERE>
1
2
3
&lt;HERE

実際に出力する際は、「NearDoc.bat」をCallし、

  • 第一引数 … 自BATのパス
  • 第二引数 … ヒアドキュメントの区切り文字
を渡します。
1
2
Call NearDoc.bat "%~0" HERE

標準出力に、「HERE>」~「<HERE」の間に記述されている内容が出力されます。

1
2
3
1
2
3

標準出力に出るので、パイプで繋いでsortやらfindstrやらでごにょごにょできます。
また、区切り文字さえ被らなければ、ニアドキュメントは複数記述可能です。
(テストコードでも複数を使用しています)

ソースコード

いつもと同様、上が話題のコードで、下が簡単なテストコードです。[NearDoc.bat]


[NearDocTest.bat] ※テストコード