我有两个代码,但第 5 部分在与第 4 部分不同的文件中抓取了错误的变量。
part4 使用 var4,part5 使用 var5。我希望 var5 在 "skip=2 tokens=2 delims==" 下被抓取 2 行,但由于某种原因,在第 5 部分中引用 findstr 时我不能跳过行。第 5 部分是所有需要更改的部分,第 4 部分很好。
所以从本质上讲,我如何让 part5 在 part4 的 findstr 下方获取变量两行?
SETLOCAL ENABLEDELAYEDEXPANSION
:part4
set var4=
findstr /m "Ship sunk!" "C:\Users\P Ditty\Documents\SH3\data\cfg\Backups_SCR2\*.clg" "C:\Users\P Ditty\Documents\SH3\data\cfg\Backups_SCR2\Log_*.cfg"
if not errorlevel 1 (
for /f "tokens=4 delims==,|" %%D in ('findstr "Ship sunk!" "C:\Users\P Ditty\Documents\SH3 \data\cfg\Backups_SCR2\*.clg" "C:\Users\P Ditty\Documents\SH3\data\cfg\Backups_SCR2\Log_*.cfg"') do (
set var4=!var4!%%D
goto :eof
)
)
:part5
findstr "Ship sunk!" "C:\Users\P Ditty\Documents\SH3\data\cfg\Backups_SCR2\*.clg" "C:\Users\P Ditty\Documents\SH3\data\cfg\Backups_SCR2\Log_*.cfg"
if not errorlevel 1 (
for /f "skip=2 tokens=2 delims==" %%E in ('findstr "Ship sunk!" "C:\Users\P Ditty\Documents\SH3\data\cfg\Backups_SCR2\*.clg" "C:\Users\P Ditty\Documents\SH3\data\cfg\Backups_SCR2\Log_*.cfg"') do (
set var5=
set var5=!var5!%%E
goto :eof
)
)
例子:
如果第 4 部分发现“船沉了!” 在这个文件中(沉船!在第一行):
asdfasfdasdfShip sunk! asdfjaslkjf;ajfa;
aksdfjklasjflk; fnwerawra
Date=19400112
我希望第 5 部分将变量设为 19400112(“日期 =”之后的第三行)。“Date=”之后的部分在 part4 变量下面两行