0

我提前为我对 vbs 的“新鲜感”道歉。我正在尝试运行此脚本来搜索我的文件服务器上的所有 pst 文件。此时,我收到此错误:

searchpst.vbs(6, 26) Microsfot VBScript 编译错误:预期语句结束。

我要运行的脚本当然是名为 searchpst.vbs,我知道 (6, 26) 是错误的行号和字符号,但我似乎不知道该怎么做才能修复它?以下是我的脚本,非常感谢您的帮助!

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)
4

2 回答 2

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
于 2013-05-23T17:40:18.983 回答
0

你需要param list(),如果你调用一个函数来接收它的返回值;和 _ 继续一行 - 所以改变:

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'")

阅读@Joe (+1) 的答案后,我尝试清理 SQL 中的引用。

于 2013-05-23T17:42:05.103 回答