0

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!
    )
  )
)
4

1 に答える 1

1
for /f "tokens=3 delims=|" %%C in ("%%B") do for /f "tokens=1 delims=," %%D in ("%%C") do echo %%D
于 2013-02-22T03:20:23.057 に答える