Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vbscript 我可以从运行regedit/s中获取退出代码吗?_Vbscript_Exit Code_Regedit - Fatal编程技术网

Vbscript 我可以从运行regedit/s中获取退出代码吗?

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

我有一个脚本可以更改注册表值,在此之前,它使用regedit/e备份注册表项以创建一个.reg文件

如果脚本再次运行并且.reg备份文件存在,我会询问用户是否要将备份添加回注册表

因为我不想让那些不知道会发生什么的用户感到困惑,因为他们可能不理解额外的提示,所以我使用以下代码来实现这一点,而不询问用户是否要导入:

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的答案