我試圖檢查是否有與批處理文件的計算機上的Java安裝,並在必要時安裝java。但是,管道不起作用,並且我在屏幕上獲得了reg查詢的結果。下面是代碼:註冊查詢後管道不起作用?
@ECHO OFF
cls
:checkjava
reg query "HKLM\Software\JavaSoft\Java Runtime Environment" | find "ERROR" > NUL
if %errorlevel% == 0
...
我試圖檢查是否有與批處理文件的計算機上的Java安裝,並在必要時安裝java。但是,管道不起作用,並且我在屏幕上獲得了reg查詢的結果。下面是代碼:註冊查詢後管道不起作用?
@ECHO OFF
cls
:checkjava
reg query "HKLM\Software\JavaSoft\Java Runtime Environment" | find "ERROR" > NUL
if %errorlevel% == 0
...
reg query "HKLM\Software\JavaSoft\Java Runtime Environment" 2>&1 | find "ERROR" > NUL
錯誤信息打印在錯誤流,所以你需要將其重定向在下面是詳細信息:http://www.robvanderwoude.com/redirection.php
錯誤消息發送到標準錯誤和標準輸出,因此您需要在運行前將標準錯誤重定向到標準輸出find
輸出。
reg query "HKLM\Software\JavaSoft\Java Runtime Environment" 2>&1 | find "ERROR" > nul
另一件事是,REG查詢本身的成功或失敗則返回0或1
Return Code: (Except for REG COMPARE)
0 - Successful
1 - Failed
所以,你可能沒有使用find
可言。
reg query "HKLM\Software\JavaSoft\Java Runtime Environment" > nul 2> nul
if %errorlevel% == 0 goto success
echo "Not found"
goto end
:success
echo "Found"
:end
我只是打印發現/未找到 - 但你可以採取任何你想要的行動。
謝謝你的快速答案,工作。 – feluna