Vbscript 我可以从运行regedit/s中获取退出代码吗?
我有一个脚本可以更改注册表值,在此之前,它使用regedit/e备份注册表项以创建一个.reg文件 如果脚本再次运行并且.reg备份文件存在,我会询问用户是否要将备份添加回注册表 因为我不想让那些不知道会发生什么的用户感到困惑,因为他们可能不理解额外的提示,所以我使用以下代码来实现这一点,而不询问用户是否要导入:Vbscript 我可以从运行regedit/s中获取退出代码吗?,vbscript,exit-code,regedit,Vbscript,Exit Code,Regedit,我有一个脚本可以更改注册表值,在此之前,它使用regedit/e备份注册表项以创建一个.reg文件 如果脚本再次运行并且.reg备份文件存在,我会询问用户是否要将备份添加回注册表 因为我不想让那些不知道会发生什么的用户感到困惑,因为他们可能不理解额外的提示,所以我使用以下代码来实现这一点,而不询问用户是否要导入: Set objShell = CreateObject("WScript.Shell") objShell.Run"regedit /s " & """" & Bac
Set objShell = CreateObject("WScript.Shell")
objShell.Run"regedit /s " & """" & BackupFile & """" , 0, True
对于regedit导入backup.reg文件的成功或失败,是否有方法从regedit命令获取退出代码?使用
Return = objShell.Run("regedit /s " & """" & BackupFile & """" , 0, True)
Return包含返回的值。使用
Return = objShell.Run("regedit /s " & """" & BackupFile & """" , 0, True)
Return包含返回的值。regedit不返回状态代码。将reg.exe与导入子命令一起使用:
rc = objShell.Run("reg import """ & BackupFile & """" , 0, True)
If rc = 0 Then
WScript.Echo "Import successful."
Else
WScript.Echo "Import failed. (" & rc & ")"
End If
regedit不返回状态代码。将reg.exe与导入子命令一起使用:
rc = objShell.Run("reg import """ & BackupFile & """" , 0, True)
If rc = 0 Then
WScript.Echo "Import successful."
Else
WScript.Echo "Import failed. (" & rc & ")"
End If
嗯。当然,我没有直截了当地思考。真不敢相信我竟然忘了。它似乎总是有效的,我尝试更改注册表项的权限,但仍然有效。你知道怎么强迫它失败,这样我就可以测试失败了吗?这似乎不起作用。我总是得到一个返回码0,即使它不起作用。代码很好,问题在于regedit.exe本身,请参阅@AnsgarWiechersDuh的答案。当然,我没有直截了当地思考。真不敢相信我竟然忘了。它似乎总是有效的,我尝试更改注册表项的权限,但仍然有效。你知道怎么强迫它失败,这样我就可以测试失败了吗?这似乎不起作用。我总是得到一个0的返回码,即使它不工作。代码很好,问题在于regedit.exe本身,请参阅@AnsgarWiechers的答案