vbscript:意外标识符
在我的代码中,我得到以下错误消息 c:\dpdata\u copy2.vbs(114,13)Microsoft VBScript编译错误:应为 标识符 第114行指向一个空行,所以我认为它在下一行抛出了一个错误: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
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'”