テキスト ファイルがあり、Windows バッチ スクリプトを使用して、指定された 2 つの行の間のすべての行を抽出したいと考えています。
Line1: !FILE_FORMAT=ADS
Line2: !VERSION=1.0
.
.
LineX: '親|子|IsPrimary| * *** (' で始まる行が長い)
.
.
LineY: !PropertyArray=Cost Center (!で始まる行)
.
.
LineZ.
LineX と LineY の間のすべての行を抽出し、別のファイルに出力したいと考えています。
以下のコードは、開始行を正しく見つけます。しかし、スクリプトを停止したい行(行Y)を削除し、残りのファイルを出力するだけです。
出力は X 線から Z 線までで、Y 線はありません。
@for /f "tokens=1 delims=[]" %%a in ('find /n "'Parent|Child"^<D:\DEV\Test\Cost_Center.txt') do @(
more +%%a D:\DEV\Test\Cost_Center.txt |find /v "!PropertyArray=Cost Center" || goto :eof)>D:\DEV\Test\Cost_Center_Out.txt