vbscript:意外标识符

vbscript:意外标识符,vbscript,Vbscript,在我的代码中,我得到以下错误消息 c:\dpdata\u copy2.vbs(114,13)Microsoft VBScript编译错误:应为 标识符 第114行指向一个空行,所以我认为它在下一行抛出了一个错误: Lastprop = f.DateLastModified 在代码中 strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") strFo

在我的代码中,我得到以下错误消息

c:\dpdata\u copy2.vbs(114,13)Microsoft VBScript编译错误:应为 标识符

第114行指向一个空行,所以我认为它在下一行抛出了一个错误:

Lastprop = f.DateLastModified
在代码中

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

strFolderName = "D:\1\production\Openjobs"

Set colSubfolders = objWMIService.ExecQuery _
    ("Associators of {Win32_Directory.Name='" & strFolderName & "'} " _
        & "Where AssocClass = Win32_Subdirectory " _
            & "ResultRole = PartComponent")

    'variables for getting last accessed property
    Dim fs, f 
    Set fs = CreateObject("Scripting.FileSystemObject") 

For Each objFolder in colSubfolders

    'get last modified date 
    Set f = fs.GetFolder(objFolder.Name) 
    Lastprop = f.DateLastModified
    'MsgBox(Lastprop)

            if ( DateDiff("m", f.DateLastModified, Now()) > 4) then 
                diffindates =  DateDiff("m", f.DateLastModified, Now())
                Set objShell = CreateObject("Shell.Application")
                Set objCopyFolder = objShell.NameSpace(ParentFolder) 

                OutputToLog("rem " & f.DateLastModified & ":" & objFolder.Name )

                outputtolog("move /Y """ & objFolder.Name & """ "  & ParentFolder)

                wscript.echo(diffindates & ":" & objFolder.Name & vbCr) 

            end if 

Next

有什么想法吗?或者我应该发布整个脚本吗?

是否使用Windows脚本主机运行此脚本?如果是,请将//D作为参数添加到CSCRIPT或WSCRIPT,以激活调试模式,让您在Visual Studio或任何已安装的windows脚本调试器中遍历堆栈并查看所有变量等。

此代码适用于我:

strFolderName = "C:\Temp"
strComputer = "MyComputerName"

set fs = CreateObject("Scripting.FileSystemObject")

set objWMIService = GetObject("winmgmts:" _ 
    & "{impersonationLevel=impersonate}!\\" _ 
    & strComputer & "\root\cimv2") 

set colsubfolders = objWMIService.ExecQuery ("Associators of " _  
    & "{Win32_Directory.Name='" & strFolderName & "'} " _
    & "Where AssocClass = Win32_Subdirectory " _ 
    & "ResultRole = PartComponent")

For each objFolder in colsubfolders
    Set f = fs.GetFolder(objFolder.Name) 
    Lastprop = f.DateLastModified
    wscript.echo Lastprop
Next
拆下线路


Set f = fs.GetFolder(objFolder.Name)

在for循环中使用f的任何地方都可以用objFolder替换它

什么是objFolder?它的Name属性是否有值?objFolder是“for each”循环中的对象键。在本例中,“对于Colsubfolders中的每个objfolders”和Colsubfolders=objWMIService.ExecQuery(“关联{Win32_Directory.Name='””&strFolderName&“}”&“Where AssocClass=Win32_Subdirectory”\uz&“ResultRole=PartComponent”),如果您已经读取了对象,为什么要再次获取它?objFolder.DateLastModified有效吗?您发布的代码对我有效(除了使用C:\Temp而不是D:\1\production\Openjobs)。你是如何运行我们的脚本的?D:\1\production\Openjobs上可能存在权限问题,或者其他进程是否锁定了此目录?我通过检查objFolder.name是否为空来确定它是否正常工作。我在等着看它是否像上次那样停止。它有大约800个目录要浏览。。有没有办法让它运行得更快?我在运行c:\dpdata\u copy2.vbs//D时在命令行中添加了//D,它在Microsoft Script Debugger中打开了一个空白页。然后,我在应用程序中打开了该文件,它不允许我单步执行脚本-1:objFolder.DateLastModified导致“Microsoft VBScript运行时错误:对象不支持此属性或方法:'objFolder.DateLastModified'”