2 つのテキスト ファイルを .bat ファイルにマージするにはどうすればよいですか? または、少なくとも次の行を読み取る方法/.batファイルのファイルの終わりをテストする方法は?
.bat スクリプトを使用して 2 つのテキスト ファイルをマージすることはできますか? アイデアは、追加または連結ではなく、各行の内容に基づいてマージ操作を実行することです。簡単な例は、疑似コードのように、2 つのソート済みファイルからソート済みファイルを生成することです (次の行を読み取ってファイルの終わりをテストする方法を見つけることができないため、疑似ループ)
:TOP
Set /p Line1 Read_Line (file1)
:set /p Line2 Read_Line (file2)
:TEST
IF EOF(file1) GOTO FINISH2
IF EOF (file2) GOTO FINISH1
IF %Line1% < %Line2%
(echo %Line1% - not in 2 >> File3
set /p Line1 =Read_Line (file1)
GOTO TEST)
ELSE IF %Line1% > %Line2%
(echo %Line2% - not in 1>> File3
set /p Line2=Read_Line (file2)
GOTO TEST)
ELSE echo %Line1% in both >> File3
GOTO TOP
:FINISH1
echo %Line2% - not in 1>> File3
set /p Line1=Read_Line (file1)
IF NOT (EOF (File1))
(echo %Line1% - not in 2 >> File3
GOTO FINISH1)
ELSE GOTO EOF
:FINISH2
echo %Line2% - not in 1>> File3
set /p Line2 =Read_Line (file2)
IF NOT (EOF (File1) )
(echo %Line2% - not in 1 >> File3
GOTO FINISH2)
for ループで試してみたのですが、ループ内で分岐するとループが止まるようです。set
を使用してファイル内でカーソルを移動する方法を見つけるために、さまざまなこと(並列.batを含む)を試しました<
が、正しい方法が見つかりません。