for結果のループを使用しようとしていfindstrます。var6を見つかった文字列の上にあるWHOLE行にしたいClass=!var4!。私は入れましskip=-1たが、それは機能しません(1行後ろを振り返る)。
したがって、次のようになります。
Name=Bismark #14
Class=var4
var6 = Name = Bismarck#14が欲しいのですが
findstr /b "Class=!var4!" "PosTime_Campaign_SCR.mis"
if not errorlevel 1 (
for /f "skip=-1 delims=" %%L in ('findstr "Class=!var4!" PosTime_Campaign_SCR.mis') do (
if not errorlevel 1 (
set var6=!var6!%%L
)
)
)
私は近くにいますがfor、見つかった。の文字列の1行上を表示するようにループに指示する方法がわかりませんfindstr。
解決:
@echo off
set var4=BBBismarck
for /f "delims=" %%L in (PosTime_Campaign_SCR.mis) do (
if /i "%%L" equ "Class=%var4%" (
goto endloop
)
set "var6=%%L"
)
:endloop
echo %var6%
pause