2017-04-19 49 views
0

我有一段代碼,我想用批處理 - 註冊查詢+如果存在不起作用?

reg query HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile /v EnableFirewall if %ERRORLEVEL% EQU 0 echo On 

這將檢查如果防火牆是啓用果真如此的話會響應「開」。 我嘗試測試這個命令,但我的輸出是:

ERROR: Invalid syntax. Type "REG QUERY /?" for usage.

有誰知道如何讓這段代碼的工作?

  • Luseres
+1

我不認爲'REG query'命令在'errorlevel'寫入註冊表項的值環境變量我想你應該使用'for'來解析命令的輸出。 – dcg

回答

2

使用for你可以這樣做:

@echo off 
for /f "tokens=3 delims= " %%i in ('reg query HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile /v EnableFirewall') do (
    if "%%i" equ "0x1" (
     echo activated 
    ) else (
     echo not activated 
    ) 
) 
+0

感謝@dcg,是否還有一種方法可以在激活/未激活的輸出上創建%firewall%? – Luseres

+0

@Luseres而不是打印,你可以創建一個像'set'firewall = activated/not activated''這樣的變量。 – dcg

+0

謝謝@dcg我喜歡你想幫助我! – Luseres