2013-07-19 175 views
0

這是我的代碼,它首先檢查包含安裝程序的文件夾(如果找到),將運行卸載並刪除uninstall.exe(如果它仍然存在)。最後,它刪除文件夾本身。VBS:刪除文件或文件夾時權限被拒絕

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 

問題是:它說權限被拒絕試圖刪除文件或文件夾。我通過手動刪除進行交叉檢查,並且工作。我在這個論壇上搜索過類似的問題,但沒有一個能夠幫助我解決這個問題。

任何建議,將不勝感激。 謝謝

P.s我嘗試在這裏格式化我的代碼,但仍然無法正確格式化。

回答

2

你的問題很可能由聯合國(UN)安裝程序時,您嘗試刪除它仍在運行造成的,因爲這個調用:立即

Wshshell.run "C:\Installer_3_00_00\uninstall.exe -q" 

的回報,而無需等待程序完成。改變這一行爲:

Wshshell.Run "C:\Installer_3_00_00\uninstall.exe -q", 0, True 
+0

ya ...再次感謝..我只是想通了......我添加了8秒的睡眠,它的工作.....但不是我的睡眠,我會使用你的聲明..再次感謝幫助我.. – Kriti