2013-11-26 38 views
2

我試圖讓我的批處理腳本,以檢查是否存在兩個註冊表項,如果他們這樣做,轉到......批處理文件來查詢註冊表

到目前爲止,我的代碼工作,但只需要它來檢查兩個鍵都存在以及是否存在這兩個鍵,因爲可能存在HKCU\SOFTWARE\MICROSOFT\OFFICE\14.0HKCU\SOFTWARE\MICROSOFT\OFFICE\15.0都存在的情況。

如果兩個鍵都存在,我需要它執行:O2010:O2013

此刻,如果同時存在,那麼它只是停止運行:O2010

@ECHO OFF 

REG QUERY HKCU\SOFTWARE\MICROSOFT\OFFICE\14.0 > NUL 
IF NOT ERRORLEVEL 1 GOTO :O2010 

REG QUERY HKCU\SOFTWARE\MICROSOFT\OFFICE\15.0 > NUL 
IF NOT ERRORLEVEL 1 GOTO :O2013 

GOTO :END 

:O2010 
reg import \\path_to_reg_file\regkey1.reg 
GOTO :END 

:O2013 
reg import \\path_to_reg_file\regkey2.reg 
GOTO :END 

:END 

任何幫助將非常感激了。

+1

一個可能的wya是使用'call'而不是'goto' ... – npocmaka

回答

1

你的意思是這樣?:

@ECHO OFF 

REG QUERY HKCU\SOFTWARE\MICROSOFT\OFFICE\14.0 > NUL 
IF NOT ERRORLEVEL 1 reg import \\path_to_reg_file\regkey1.reg 

REG QUERY HKCU\SOFTWARE\MICROSOFT\OFFICE\15.0 > NUL 
IF NOT ERRORLEVEL 1 reg import \\path_to_reg_file\regkey2.reg 
0

像這樣的東西應該這樣做:如果任一鍵

A):

@ECHO OFF 

REG QUERY HKCU\SOFTWARE\MICROSOFT\OFFICE\12.0 > NUL 
IF NOT ERRORLEVEL 1 set f1=1 

REG QUERY HKCU\SOFTWARE\MICROSOFT\OFFICE\15.0 > NUL 
IF NOT ERRORLEVEL 1 set f2=2 

set /a f3=f1+f2 
if %f3%==1 (echo reg import \\path_to_reg_file\regkey1.reg) 
if %f3%==2 (echo reg import \\path_to_reg_file\regkey2.reg) 
if %f3%==3 (echo reg import \\path_to_reg_file\regkey1.reg & echo reg import \\path_to_reg_file\regkey2.reg) 
0

這將導入下面的雷吉·基斯存在它將導入相關的註冊碼
B)如果兩個密鑰都存在,它將導入兩個密鑰

@ECHO OFF 
REG QUERY HKCU\SOFTWARE\MICROSOFT\OFFICE\14.0 > NUL && reg import \\path_to_reg_file\regkey1.reg 
REG QUERY HKCU\SOFTWARE\MICROSOFT\OFFICE\15.0 > NUL && reg import \\path_to_reg_file\regkey2.reg