ClassName=in 1.txt の後に来るものではなく、以下のコードの変数として使用したいと思います。
EntryText=船沈没!|グリッド AO 77| 変数を取得します HERE , (末尾のコンマに注意してください)
そのため、2 番目の | で終わるテキスト行の後にグラブします。そしてカンマの前。
変数の前のテキスト行は同じで一定ですが、 「グリッド」の後には、単語または異なる 2 つの文字と数字のペア、または | までの文字と数字の混合が存在する可能性があります。
だから私は変数として使用しようとしています。その間にあるものは次のとおりです。
EntryText=沈没船!|グリッド(文字または数字の任意の組み合わせ) | (変数) , (カンマ)
だから、2 番目の間をつかむ | そしてコンマ。あなたより。
@echo off
copy 2.txt 2.txt-backup
setlocal enableDelayedExpansion
>2.txt (
for /f "tokens=1* delims=:" %%A in ('findstr /n "^" 2.txt-backup') do (
( echo !ln!| findstr "^Type=206$" >NUL && set ln=ln ) || (
set "ln=%%B"
if "!ln:~0,6!"=="Class=" (
findstr /c:"ClassName=!ln:~6!" "E:\Dropbox\New folder\Log_*.txt" >"E:\Dropbox\New folder\null" && (
echo Class=ShipDummy
set "ln=Type=206"
)
)
if #!ln!==# (echo;) else echo !ln!
)
)
)