2013-08-18 53 views
0

我有一個更改註冊表值的腳本,在做之前,它使用regedit /e來創建註冊表項的備份以創建.reg文件。我可以從運行regedit/s獲取退出代碼嗎?

如果腳本再次運行並且.reg備份文件存在,我詢問用戶是否要將其備份添加回註冊表中。

因爲我不想混淆用戶誰也沒有真正的想法發生什麼事情與他們可能不明白的額外提示,我使用下面的代碼來做到這一點,無需詢問用戶是否要導入:

Set objShell = CreateObject("WScript.Shell") 
objShell.Run"regedit /s " & """" & BackupFile & """" , 0, True 

有沒有一種方式來獲得用於regedit在導入備份.reg文件成功或失敗的regedit命令退出代碼?

回答

0

使用

Return = objShell.Run("regedit /s " & """" & BackupFile & """" , 0, True) 

Return包含返回值。

+0

Duh。當然,我並沒有直接想。不能相信我忘了那個。 – andyx

+0

它似乎總是工作,我試圖改變註冊表項上的權限,但它仍然工作。你是否知道強迫這個失敗,所以我可以測試失敗? – andyx

+0

似乎沒有工作。即使不起作用,我也會得到一個返回碼0。 – andyx

3

regedit不返回狀態碼。使用reg.exeimport子命令:

rc = objShell.Run("reg import """ & BackupFile & """" , 0, True) 

If rc = 0 Then 
    WScript.Echo "Import successful." 
Else 
    WScript.Echo "Import failed. (" & rc & ")" 
End If 
相關問題