批处理文件-我该如何应用它



我想用它作为下面代码的变量,而不是1.txt中ClassName=之后的变量,我想要介于两者之间的变量:

EntryText=沉船|网格AO 77 |变量

(注意变量后面的逗号和前面的|)

因此,在以第二个|结尾、逗号之前的文本行后面抓取。

变量之前的文本行将是相同且恒定的,除非在"网格"之后,直到第二个|之前可能存在任何字母和数字的混合

因此,我试图将介于两者之间的内容用作变量:

EntryText=沉船|网格(字母或数字的任何组合)|(变量)

所以抓住第二个|和逗号之间。比你。我想将ClassName=之后的变量抓取替换为第二个|和逗号之间的内容。请记住,文件中还有其他|和逗号,我不想抓取,我只想抓取|之后和逗号之前的变量,如果它在"EntryText=Ship sink!|Grid…"之后

同样,我不想要网格部分,我想要第二个|之后逗号之前的内容。也会有很多EntryText行,所以我想抓住其中的那一部分并放入我的代码中。

因此,我想复制上面列出的变量的位置,而不是ClassName=之后的内容。

感谢您抽出时间!!

@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:DropboxNew folderLog_*.txt" >"E:DropboxNew foldernull" && (
            echo Class=ShipDummy
            set "ln=Type=206"
        )
    )
    if #!ln!==# (echo;) else echo !ln!
)
)
)

有人给了我这个底层代码,但我不知道这是否是我想要的,也不知道如何将其应用于以上内容:

for /f "tokens=3 delims=|" %%C in ("%%B") do for /f "tokens=1 delims=," %%D in ("%%C") do echo %%D

谢谢!!!!!

我想你想要这样的东西。。。

...
set "ln=%%B"
for /f "tokens=3 delims=|" %%C in ("%%B") do for /f "tokens=1 delims=," %%D in ("%%C") do set "MyVar=%%D"
findstr /c:"ClassName=!MyVar!" "E:DropboxNew folderLog_*.txt" >"E:DropboxNew foldernull" && (
    echo Class=ShipDummy
    ...

最新更新