-4

我编写了一个调用两个参数的脚本,但每次运行时都会收到一条错误消息:

行:7 字符:21 错误:预期文字常量代码:800A0415

有人可以帮我理解我在这里做错了什么吗?

下面的脚本期望接收 2 个参数并根据这些参数执行文件删除。

第一个参数将包含要删除的文件的路径,第二个参数将包含一个代表天数的数字。

Dim arg, var1, var2
set arg = wscript.Arguments
var1 = arg(0)
var2 = arg(1)

Const strPath = var1
Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")

Call Search (strPath)
WScript.Echo"Completed Successfully."

Sub Search(str)
    Dim objFolder, objSubFolder, objFile
    Set objFolder = objFSO.GetFolder(str)
    For Each objFile In objFolder.Files
        If objFile.DateLastModified < (Now() - var2) Then
            objFile.Delete(True)
        End If
    Next
    For Each objSubFolder In objFolder.SubFolders
        Search(objSubFolder.Path)
    Next
End Sub
Set objFSO = nothing
Set arg = nothing
4

1 回答 1

0

您的问题在于以下行:

Const strPath = var1

您不能将常量的值设置为变量。您需要明确将文字内容声明为常量,例如:

Const strPath = "C:\Some\Path"

鉴于您正在尝试做的事情,最好使用 strPath 作为变量并从那里开始。

Dim strPath : strPath = var1

或其他一些类似的解决方案。

于 2013-08-06T16:12:58.517 回答