ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

DOSシェルプログラミングコミュのreg queryの分岐出力制御

  • mixiチェック
  • このエントリーをはてなブックマークに追加
WinXP Pro(SP2)マシンからMSパッチのインストール確認をBatch Scriptで制御しようと考えています。

【C:\patchlistの内容】

KB891781
KB892842
KB892843
KB895333
KB902400
KB123456


【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

:ERROR
echo %%i is not found
pause

endlocal



C:\patchlistに記載されているパッチのリストを再帰的に検索し、サブキーの見つからなかった場合は、その旨をechoで表示されようとしているのですが失敗してしまいます。前述のC:\patchlist.txtにおいては、最後の行のKB123456だけをエラーとして表示させたいと考えています。


修復箇所などありましたら教えてください。
宜しくお願い致します。

コメント(2)

スクリプトコードの意図が読めませんが、要件を満たすスクリプトを書くと、

@echo off
setlocal
for /f %%A in (C:\patchlist.txt) do (
 reg query "....." /s | findstr %%A >NUL
 if ERRORLEVEL 1 echo %%A is not found&pause
)

@echo off は一度やればその後echo onするまで有効ですよ。
あと、
>C:\patchlistに記載されているパッチのリストを再帰的に検索し、
再帰は必要ないです。
おはようございます。

>chauvinistさんへ
otnさんの素晴らしい回答がすでにございますが、私の書き方(やってる事は同じものです)を書きますので、こちらも参考にして頂けると幸いです。余計なお世話ですが、私なら念のため検索オプションに[/i]を付けるのと、「見つからなかったのか」「バッチが勝手にスルーしてしまったのか」を判断したいので、OKのときも表示させます。必要があればログにも残しておくと良いかもしれませんね。

>失敗してしまいます
「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

::-------------------------

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

DOSシェルプログラミング 更新情報

DOSシェルプログラミングのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング