vbscript: неожиданный идентификатор - PullRequest
0 голосов
/ 26 января 2009

В моем коде я получаю следующее сообщение об ошибке

c: \ dpdata_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

Есть идеи? или я должен опубликовать весь сценарий?

Ответы [ 3 ]

0 голосов
/ 26 января 2009

У меня работает этот код:

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
0 голосов
/ 26 января 2009

Удалить строку


Set f = fs.GetFolder(objFolder.Name)

и везде, где вы используете f в цикле for, замените его на objFolder

0 голосов
/ 26 января 2009

Используете ли вы это с помощью Windows Scripting Host? Если это так, добавьте // D в качестве параметра в CSCRIPT или WSCRIPT, чтобы активировать режим отладки, который позволяет вам проходить через стек и просматривать все переменные и т. Д. В Visual Studio или любом установленном отладчике сценариев Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...