【Batch Fileの内容】 setlocal @echo off for /f %%i in (c:\patchlist.txt) do @echo off | reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP3\" /s | findstr %%a IF %ERRORLEVEL%==1 goto ERROR
>失敗してしまいます
「for /f %%i」、「findstr %%a」、「echo %%i is not found 」となっているからではないでしょうか。(変数統一で解決しませんか?)
::-------------------------
@echo off
for /f %%a in (c:\patchlist.txt) do (
reg query "HKLM\SOFTWARE\Microsoft\Updates\Windows XP\SP3\" /s |findstr /i "%%a" 1>nul 2>&1 && echo [ok] %%a || echo [NG] %%a is not found
)
pause
::-------------------------
>最後の行のKB123456だけをエラーとして表示させたい
これの意味がよく分かりません・・・。
以下のような事ですか?
::-------------------------
@echo off
for /f %%a in (c:\patchlist.txt) do (
if "%a%"=="KB123456" (
echo KB123456はエラーです。
) else (reg query "HKLM\SOFTWARE\Microsoft\Updates\Windows XP\SP3\" /s |findstr /i "%%a" 1>nul 2>&1 || echo [NG] %%a is not found
)
)
pause