5

特定の拡張子の 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 スクリプトにまったく習熟していませんが、たまたま使用を許可されているのは vb スクリプトだけです。

4

3 に答える 3

19

どうぞ:

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
于 2013-09-20T16:03:41.507 に答える
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"!

于 2016-01-22T20:12:49.273 に答える