2013-05-23 2 views
0

Я заранее извиняюсь за свою «новизну» в vbs. Я пытаюсь запустить этот скрипт для поиска всех pst-файлов на моем файловом сервере. На этом этапе я получаю эту ошибку:Ошибка VBS Scripting

searchpst.vbs (6, 26) Ошибка компиляции Microsfot VBScript: Ожидаемый конец инструкции.

сценарий, который я пытаюсь запустить, конечно, называется searchpst.vbs, и я знаю, что (6, 26) является строкой и номером charecter ошибки, но я не могу понять, что делать, чтобы исправить Это? Ниже мой сценарий, и помощь очень ценится!

strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 
Set colFiles = objWMIService.ExecQuery _ 
strsql = "Select" * from CIM_DataFile Where Extension = '"pst"'" 
Set fso = CreateObject("Scripting.FileSystemObject") 
set wfile = fso.opentextfile("c:\test.csv",2,true) 

For Each objFile in colFiles 

    Wfile.writeline(strComputer & " " & objFile.Drive & " " & objFile.Path & " " & objFile.FileName & "." & objFile.Extension & " " & objFile.FileSize) 

ответ

1

Я переформатировал код для удобства чтения. Единственный апостроф ' изменяет все, что находится за ним, на комментарий, поэтому он не является частью кода. Так что '"pst"'" не видно.

На самом деле, есть больше проблем, чем просто это. Вся эта строка отформатирована неправильно, и я думаю, что у вас есть пара других строк не в порядке. Это должно выглядеть так, я думаю:

strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 
strsql = "Select * from CIM_DataFile Where Extension = 'pst'" 
Set colFiles = objWMIService.ExecQuery(strsql) 
Set fso = CreateObject("Scripting.FileSystemObject") 
set wfile = fso.opentextfile("c:\test.csv",2,true) 

For Each objFile in colFiles 
    Wfile.writeline(strComputer & " " & objFile.Drive & " " & objFile.Path & " " & objFile.FileName & "." & objFile.Extension & " " & objFile.FileSize) 
Next 
+0

Джо, спасибо миллион! Он отлично работал. Я очень ценю это!! – user2414682

0

Вам нужен список параметров(), если вы вызываете функцию для получения ее возвращаемого значения; и _ продолжает линию - так меняется:

Set colFiles = objWMIService.ExecQuery _ 
strsql = "Select" * from CIM_DataFile Where Extension = '"pst"'" 

в

strsql = "Select * from CIM_DataFile Where Extension = 'pst'" 
Set colFiles = objWMIService.ExecQuery(strsql) 

или:

Set colFiles = objWMIService.ExecQuery(_ 
    "Select * from CIM_DataFile Where Extension = 'pst'") 

После прочтения @ (+1) ответ Джо, я попытался очистить цитируемость в вашем SQL.

Смежные вопросы