none
利用VBScript刪除檔案的問題 RRS feed

  • 問題

  • Dear All

             小弟寫了一個簡單的script,用來刪除某資料夾中過期的檔案,這些檔案是由File Server備份下來的,但一執行那個script便會跳出下面這個錯誤:

    Script Name
    行:17
    字元:7
    錯誤:沒有使用權限
    程式碼:800A0046
    來源:MS VBScript 執行階段錯誤

    程式碼如下
    Dim FSO,agoDays,modifiedDate,delFolder

    agodays = 30
    delFolder1 = "D:\Backup_Data\fs1\Mon"
    'delFolder2 = "D:\Backup_Data\fs1\Tue"

    Set FSO = CreateObject("Scripting.FileSystemObject")
    modifiedDate = DateAdd("d",-agoDays,Date)

    DelFilesInFolder FSO.GetFolder(delFolder1)
    'DelFilesInFolder FSO.GetFolder(delFolder2)

    Sub DelFilesInFolder(folder)
       Dim file,subFolder
       For Each File In folder.Files
         If((file.DateLastModified <= modifiedDate)) Then
          file.delete
         End IF
       Next         

       For Each subFolder in folder.SubFolders
        DelFilesInFolder subFolder 
       Next
     
    End Sub

    請問是哪邊還要修改? 這支script用在其他資料夾OK,但用在從File Server 備下來的資料夾便不行...
    以上請大家指點一下,thks




    2009年1月21日 上午 10:19

解答

  • Dear All

            問題解決了!
            原來是卡在某一個檔案的屬性為"唯讀",程式一執行到那邊就掛了。
            目前用一個不怎麼漂亮的方法解決了,就是直接去cmd底下,切換到該磁區,用attrib -R的方式去掉唯讀屬性後,再跑一次script就OK了。不過一件事要分開作畢竟不太漂亮,若有高手知道怎麼在script中利用程式將唯讀去掉的,那就完美了! 若知道的人再請指點一下,thks。
    2009年1月22日 上午 06:32

所有回覆

  • Hi,

    錯誤訊息已指出沒有使用權限,

    您可嘗試著從權限部份檢查。

     

    2009年1月22日 上午 12:37
  • Dear Willams

            登入電腦的帳號是domain\administrator,該帳號亦有欲刪除的資料夾(包含子資料夾及檔案)完整的權限。
            請問是否要在程式碼中再加入指定權限或執行者或任何其他的程式碼? sorry,可能問了一個笨問題...我並非公司的IT AP人員,再麻煩您指點,謝謝。

    2009年1月22日 上午 02:24
  • 先用該使用者手動刪除,確認是否可刪除。

     

    不能刪除除了權限外,正在使用的檔案、擁有權不正確的檔案也是不能刪的。

    2009年1月22日 上午 03:13
  • Dear All

            問題解決了!
            原來是卡在某一個檔案的屬性為"唯讀",程式一執行到那邊就掛了。
            目前用一個不怎麼漂亮的方法解決了,就是直接去cmd底下,切換到該磁區,用attrib -R的方式去掉唯讀屬性後,再跑一次script就OK了。不過一件事要分開作畢竟不太漂亮,若有高手知道怎麼在script中利用程式將唯讀去掉的,那就完美了! 若知道的人再請指點一下,thks。
    2009年1月22日 上午 06:32
  • 去微軟下載中心抓 Script 5.6 中文線上手冊,裡面有 FSO 的說明,有可以變更屬性的方法。

     

     

    2009年1月25日 上午 01:35