0

フォルダーをスキャンし、jpg、png、gif などの画像ファイルのみを一覧表示するスクリプトを作成しようとしています。これがコードです

Dim fso, ObjFolder, ObjOutFile, ObjFiles, ObjFile, outputFile, inputFileList
Const ForReading = 1, ForWriting = 2, ForAppending = 8, CreateIfNeeded = true

inputFileList = "list.txt"
outputFile = "C:\Users\Susan\Documents\iMacros\Macros\WindowsFiles.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
Set objTextFile = fso.OpenTextFile(inputFileList, ForReading)

Do Until objTextFile.AtEndOfStream
 sFolderName = objTextFile.Readline
 wscript.Echo "writing contents of " & sFolderName
 writefilenames(sFolderName)
Loop

function writefilenames(sFolderName)
  Set ObjFolder = fso.GetFolder(sFolderName)

  If fso.FileExists(outputFile) Then
    Set ObjOutFile = fso.OpenTextFile(outputFile, ForAppending)
  Else
    Set ObjOutFile = fso.OpenTextFile(outputFile, ForWriting, CreateIfNeeded)
  End If

  Set ObjFiles = ObjFolder.Files

  For Each ObjFile In ObjFiles
    ObjOutFile.WriteLine(ObjFile.Path)
  Next

  ObjOutFile.Close
end function

誰かが私に適切なコードを教えてもらえますか?

4

1 に答える 1

3

拡張子が一致するObjOutFile.WriteLine(ObjFile.Path)場合にのみコマンドを実行します。ObjFile

Set extensions = CreateObject("Scripting.Dictionary")
extensions.CompareMode = 1 ' make lookups case-insensitive
extensions.Add "jpg", True
extensions.Add "png", True
extensions.Add "gif", True

'...

For Each ObjFile In ObjFiles
  If extensions.Exists(fso.GetExtensionName(ObjFile)) Then
    ObjOutFile.WriteLine(ObjFile.Path)
  End If
Next

また、質問をブロードキャストしないでください。あなたが助けを求めている人々に対して、それはあまり礼儀正しくありません。

于 2012-09-02T13:08:47.500 に答える