我正在尝试编写一个脚本来搜索C:\及其所有子文件夹以获取特定扩展名,并将所有主题保存到CSV文件中。我试过这个但无济于事:
Set objFSO = CreateObject("Scripting.FileSystemObject")
objStartFolder = "C:\"
Set objFolder = objFSO.GetFolder(objStartFolder)
Wscript.Echo objFolder.GetExtensionName("*.txt")
Set colFiles = objFolder.Files
For Each objFile in colFiles
If objFile.Extension = "pfx" Then
Wscript.Echo objFile.Name
End If
Next
Wscript.Echo
ShowSubfolders objFSO.GetFolder(objStartFolder)
Sub ShowSubFolders(Folder)
For Each Subfolder in Folder.SubFolders
Wscript.Echo Subfolder.Path
Set objFolder = objFSO.GetFolder(Subfolder.Path)
Set colFiles = objFolder.Files
For Each objFile in colFiles
Wscript.Echo objFile.Name
Next
Wscript.Echo
ShowSubFolders Subfolder
Next
Set WScript = CreateObject("WScript.Shell")
End Sub
我认为我不会走这条路。我不擅长vb脚本,它恰好是我唯一可以使用的东西。
答案 0 :(得分:14)
你走了:
Option Explicit 'force all variables to be declared
Const ForWriting = 2
Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objTS 'Text Stream Object
Set objTS = objFSO.OpenTextFile("C:\Output.txt", ForWriting, True)
Recurse objFSO.GetFolder("C:\")
objTS.Close()
Sub Recurse(objFolder)
Dim objFile, objSubFolder
For Each objFile In objFolder.Files
If LCase(objFSO.GetExtensionName(objFile.Name)) = "pfx" Then
objTS.WriteLine(objfile.Path)
End If
Next
For Each objSubFolder In objFolder.SubFolders
Recurse objSubFolder
Next
End Sub
答案 1 :(得分:2)
我知道这有些晚了,但这很难获得这份清单。最简单的是起诉命令行:
首先确定您希望目录所在的文件:
set FileList="C:\path\path\file.csv"
其次确定起始目录如下:
set Start="C:\path\path"
然后像这样填写:
for /F "usebackq" %i in (`dir /s/b "%Start%\*.pfx"`) do echo %~pi>>%filelist%
以交互方式完成并完成。
PS - 这个帖子取消了反对。这通常是代字号下的字符,它们应该包含完整的目录命令。假设更换!对于反引号,drectory命令应为!dir/s/b "%Start%\*.pfx"!
答案 2 :(得分:0)
后来仍然更简单(和快速:0)):
打开CMD,CD到相关目录
DIR / S / A-D / B C:\ *。某事>> d:\ ListOf.Files 强>