Batch file 我如何应用这个?

Batch file 我如何应用这个?,batch-file,batch-processing,Batch File,Batch Processing,我想用下面的代码作为变量,而不是1.txt中ClassName=之后的变量,我想用介于两者之间的变量: EntryText=船沉没了|网格AO 77 |变量 (注意变量后面的逗号和前面的|) 因此,在以第二个|结尾的文本行之后,逗号之前抓取 变量前的文本行将是相同且恒定的,但在“网格”之后,直到第二行之前,可能存在字母和数字的混合| 因此,我尝试将其用作变量,介于两者之间: EntryText=船沉没了|网格(字母或数字的任意组合)|(变量),(逗号) 因此,抓住第二个|和逗号之间的位置。比你强

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

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

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

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

变量前的文本行将是相同且恒定的,但在“网格”之后,直到第二行之前,可能存在字母和数字的混合|

因此,我尝试将其用作变量,介于两者之间:

EntryText=船沉没了|网格(字母或数字的任意组合)|(变量),(逗号)


因此,抓住第二个|和逗号之间的位置。比你强。
我想将ClassName=之后的变量抓取替换为介于第二个|和逗号之间的变量。 请记住,文件中还有其他的|和逗号,我不想抓取,我只想抓取|后面的变量,如果它在“EntryText=Ship sunked!| 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:\Dropbox\New folder\Log_*.txt" >"E:\Dropbox\New folder\null" && (
            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:\Dropbox\New folder\Log_*.txt" >"E:\Dropbox\New folder\null" && (
    echo Class=ShipDummy
    ...

不清楚您在寻找什么。一旦您刮取了变量,您想用它做什么?您想把它回显到2.txt而不是
Class=ShipDummy
吗?您想把它回显到
E:\Dropbox\New Folder\null
?我想做它在2.txt中已经做过的事情。这样它就会匹配2.t中Class=ShipDummy之后的内容xt,然后用Class=ShipDummy替换。谢谢。@machiavelli:问了11个问题,只有2张赞成票,你会得到很多帮助。我试过你的代码,它把所有东西都转换成Class=ShipDummy,然后键入=206,然后在第三行输入ln。谢谢你的努力。我只想知道第二行和第二行之间的内容在2.txt中使用Class=ShipDummy获得aced,下面是保持Type=206秒,commaI确实想到了一种更简单的方法来实现我想要实现的目标,请参见这里: