簡體   English   中英

運行時錯誤Microsoft VBScript

[英]Runtime Error Microsoft VBScript

幫助腳本。 錯誤:d:\\ learning \\ vbs \\ backup6.vbs(47,9)運行時錯誤Microsoft VBScript:無效的調用或參數過程。 我不明白為什么。

Dim Fso
Dim Directory
Dim Modified
Dim Files
Dim source
Dim destination
Dim rar
Dim n

source = "d:\test\source\"
destination = "d:\test\destination\"
rar = "d:\learning\vbs\Rar.exe"
n = 3

Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run """rar"" a -agYYYY-MM-DD-HH-MM-SS " &destination& " " &source
Set Fso = CreateObject("Scripting.FileSystemObject")
Set Directory = Fso.GetFolder(destination)
Set Files = Directory.Files
search_delete destination, n

Sub search_delete(str, n)
Dim strOldestFile
Dim dtmOldestDate
Dim count
Dim colFiles
Dim strFile

strOldestFile = ""
dtmOldestDate = Now
Set colFiles = Directory.Files

Do
    count = 0
    For Each objFiles in colFiles
        count = count + 1
        strFile = objFiles.Path
            dtmFileDate = objFiles.DateCreated
            If dtmFileDate < dtmOldestDate Then
                dtmOldestDate = dtmFileDate
                strOldestFile = strFile
            End If
    Next
    WScript.Echo(strOldestFile)

    If count > n Then
        Fso.DeleteFile strOldestFile
    End If  
    strOldestFile = ""

Loop While (count > n)

End Sub

這行代碼中的錯誤:Fso.DeleteFile(strOldestFile)

程序的邏輯並不在於,當count > n時, strOldestFile將不包含文件名。

如果你有,你有上升3個文件的情況下DateCreated的時間,然后strOldestFile將永遠不會被設置,但Fso.DeleteFile仍然會被調用。

Visual Studio(所有版本,包括2015年之前的版本)均包含VBScript調試器。 如果使用cscript //X //D $yourScriptFileName.vbs運行腳本,它將提示您啟動VS並附加到腳本主機以逐步調試該腳本。

(請注意, //X //D命令行參數確實確實有兩個正斜杠)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM