[Windows]バッチファイルにて処理対象ファイル内でコメントアウトを扱う

仕事で必要になったのでメモします。 利用したいコマンドが、大量データを扱うにもかかわらずファイル内のコメントをサポートしていなかったら、やっぱり寂しいですよね。そんな時に。

手順としては単純です。

  • FINDSTRで正規表現を用いて任意のパターンを含む行を無視してリダイレクト
  • リダイレクトして作った中間ファイルを任意のコマンドに入力

以上です。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
@echo off

if "%‾1" == "" goto usage

SET VALUE=%1

rem "^#"とマッチする行を無視して中間ファイルを作成
type %1 | findstr /v "^#" > tmp.dat
hoge.exe tmp.dat

pause
goto :eof

:usage
echo Usage: fuga.bat piyo

おまけに引数チェックも。

for文でどうやらコメントアウトが扱えるらしいと聞いたのは、もちろんfor文も書き込んで、ぐるぐると処理が回りきったあとのことでした。