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