N天之前从给定文件夹中删除文件

时间:2013-07-22 18:57:47

标签: vbscript

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

  

行: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

1 个答案:

答案 0 :(得分:0)

您的问题出在以下几行:

Const strPath = var1

您不能将常量的值设置为变量。您需要明确说明文字是一个常量,如:

Const strPath = "C:\Some\Path"

考虑到你要做的事情,你最好将strPath用作变量并从那里开始。

Dim strPath : strPath = var1

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