0

自分のマシンにバージョンが2にないことを確認したいので、例として、次の行で3バージョンを取得しようとします。

REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\zup\Product" /v 3
if ERRORLEVEL  0 ( //found 3
ECHO error.>>%LogFileName%

しかし、レジストリからこのフィールドを取得しようとすると、「システムは指定されたレジストリキーまたは値を見つけることができませんでした」というエラーが表示されます。では、どうすれば確認できますか?

4

1 に答える 1

1

問題は、Product が ValueName であることだと思います。

Product が ValueName の場合、次のように呼び出す必要があります。

REG QUERY "HKLM\SOFTWARE\zup" /v Product

これにより、ValueName 製品の詳細がエコーされます


if ステートメントに問題があります。

IF ERRORLEVEL 0 常に一致する 0 以上の戻りコードに一致します。

欠落している ValueName を確認するにはIF ERRORLEVEL 1

REG には 2 つの戻りコードがあることに注意してください。

0 - Successful
1 - Failed

メモ帳のステータスバーが表示されているかどうかを確認するコードの例を次に示します。

Notepad はキー名で、statusbar は ValueName です。

@echo off
setlocal

set statusbar=0
set query_command=reg query hkcu\software\microsoft\notepad /v statusbar

:: parse output of reg
for /f "tokens=1,2,3" %%a in ('%query_command%') do (
    :: search for line starting with statusbar
    if /i "statusbar"=="%%a" (
        :: parse hex into int
        set /a statusbar=%%c
        )
    )

if %statusbar% EQU 1 (
    echo notepad's status bar is visable
    ) else (
    echo notepad's status bar isn't visable
    )

endlocal
于 2012-11-10T19:15:28.557 に答える