一括で 改行を置換してそのあとに <cd>の時だけの改行を入れて置換処理をしたらいかがでしょうか?
または 最初に 改行<cd>を 別のものに置換後、一括で改行置換してから
改行<cd>に戻すというのは どうでしょうか?
一例。
VBScript で a.txt を読み込んで b.txt に出力
Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile("a.txt") oldText = objFile.ReadAll ' オブジェクトの準備とパラメータ設定 Set objRep = New RegExp objRep.Multiline = True objRep.Global = True ' 置換条件の設定と置換実行 objRep.Pattern = "(?!\r*\n<cd>)\r*\n" repText = "" newText = objRep.replace(oldText, repText) objFile.Close Set objFile = objFSO.CreateTextFile("b.txt") objFile.WriteLine (newText) objFile.Close