这是我的代码,首先检查包含安装程序的文件夹(如果找到),运行卸载并删除uninstall.exe(如果仍然存在)。最后,它删除文件夹本身。
Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set wshshell = wscript.CreateObject("WScript.Shell")
If objFSO.FolderExists("C:\Installer_3_00_00") Then
Set objFolder = objFSO.GetFolder("C:\Installer_3_00_00")
if objFSO.FileExists("C:\Installer_3_00_00\uninstall.exe") Then
Wshshell.run "C:\Installer_3_00_00\uninstall.exe -q"
End if
if objFSO.FileExists("C:\Installer_3_00_00\uninstall.exe") Then
Set objFile=objFSO.GetFile("C:\Installer_3_00_00\uninstall.exe")
objFile.Delete True
End if
objFolder.Delete True
Else
End If
Set objFSO = Nothing
问题是:它说Permission拒绝尝试删除文件或文件夹。我通过手动删除交叉检查,它工作。我在这个论坛中搜索过类似的问题,但没有一个能帮我解决这个问题。
任何建议将不胜感激。 感谢
P.s我尝试在这里格式化我的代码,但我仍然无法正确格式化。
答案 0 :(得分:2)
您的问题很可能是由于(un)安装程序在您尝试删除时仍然运行而导致的,因为此调用:
Wshshell.run "C:\Installer_3_00_00\uninstall.exe -q"
立即返回,无需等待程序完成。将该行改为:
Wshshell.Run "C:\Installer_3_00_00\uninstall.exe -q", 0, True