2015-08-29 5 views
0

Справка по скрипту. Ошибка: d: \ learning \ vbs \ backup6.vbs (47, 9) Ошибка выполнения Microsoft VBScript: Неверная процедура вызова или аргумента. Я не понимаю, почему.Ошибка выполнения 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) Логика

ответ

0

вашей программы не так, что strOldestFile будет содержать имя файла, когда count > n.

Если у вас есть случай, когда у вас есть 3 файла с восходящим DateCreated времени, то strOldestFile никогда не будет установлен, но Fso.DeleteFile все равно будет называться.

Visual Studio (все версии, вплоть до 2015 года включительно) включает отладчик VBScript. Если вы запустите скрипт с помощью cscript //X //D $yourScriptFileName.vbs, тогда он предложит вам запустить VS и подключиться к хосту сценария для сквозного отладки сценария.

(Обратите внимание, что //X //D аргументы командной строки действительно имеют два вперед-слэш)