我正在尝试创建一个VbScript文件,该文件将读取包含文件夹名称列表的文本文件。 从这些文件夹名称我需要创建第二个文本文件,打印出具有特定扩展名的所有文件。
我已使用此代码执行任务的第二部分
Option Explicit 'force all variables to be declared
Const ForWriting = 2
Dim objFSO 'File System Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objTS 'Text Stream Object
Set objTS = objFSO.OpenTextFile("C:\Output.txt", ForWriting, True)
Call Recurse("C:\")
objTS.Close()
Sub Recurse(strFolderPath)
Dim objFolder
Set objFolder = objFSO.GetFolder(strFolderPath)
Dim objFile
Dim objSubFolder
For Each objFile In objFolder.Files
'only proceed if there is an extension on the file.
If (InStr(objFile.Name, ".") > 0) Then
'If the file's extension is "pfx", write the path to the output file.
If (LCase(Mid(objFile.Name, InStrRev(objFile.Name, "."))) = ".exe") Then _
objTS.WriteLine(objfile.Path)
End If
Next
For Each objSubFolder In objFolder.SubFolders
Call Recurse(objSubFolder.Path)
Next
End Sub
我试过把它放在一个循环中,但当我这样做时,我得到一行语法错误Sub Recurse(strFolderPath)
您可以提供任何帮助,我们将不胜感激
答案 0 :(得分:0)
的一种解释
我已经尝试将其置于循环但是当我这样做时,我得到语法错误 对于此行 Sub Recurse(strFolderPath)
结果脚本的结构如下所示:
Do Until tsIn.AtEndOfStream
p = tsIn.ReadLine
Sub Recurse(p)
End Sub
Call Recurse(p)
Loop
输出:
cscript 27537600-B.vbs
..\27537600-B.vbs(3, 4) Microsoft VBScript compilation error: Syntax error
VBScript不允许嵌套的子/函数定义,特别是在循环中(您可能会在顶级代码中混合使用简单语句和子/函数定义,但这更像是一个错误,而不是一个特性)。如果您重新构建脚本,如
Do Until tsIn.AtEndOfStream
p = tsIn.ReadLine
Call Recurse(p)
Loop
Sub Recurse(p)
End Sub
您在子行中未获得语法错误。