0

フォルダを指定せずに E:\ ドライブからすべてのファイルを取得しようとしています。スクリプトで E: ドライブ内のすべてのファイルを取得するだけです。これが私のスクリプトです。私はそれを書くために複数の方法を試しましたが、それを機能させることに成功していません。これは、ドライブ内のフォルダーを取得することによって機能するスクリプトです。2番目のものは、それを機能させるために変更しようとしたものです。どんな助けでも大歓迎です。

    Set fso = CreateObject("Scripting.FileSystemObject")

testfolder = ".\allpictures"
'fso.CreateFolder(testfolder)

CopyFiles fso.GetFolder("C:\Users\virix\Desktop\mytest") 

Sub CopyFiles(fldr)
  For Each f In fldr.Files
    basename  = fso.GetBaseName(f)
    extension = fso.GetExtensionName(f)
    If LCase(extension) = "jpg" or LCase(extension) = "jpeg" Then
      dest  = fso.BuildPath(testfolder, f.Name)
      count = 0
      Do While fso.FileExists(dest)
        count = count + 1
        dest  = fso.BuildPath(testfolder, basename & "_" & count & "." _
          & extension)
      Loop
      f.Copy dest
    End If
  Next

  For Each sf In fldr.SubFolders
    CopyFiles sf
  Next
End Sub

これは私が修正したものですが、動作しません。

Set fso = CreateObject("Scripting.FileSystemObject")

testfolder = ".\allpictures"
'fso.CreateFolder(testfolder)

StartCopy fso.GetDrive("E:\")

Sub StartCopy(fldr)
  For Each f In fldr.Files 
    basename  = fso.GetBaseName(f)
    extension = fso.GetExtensionName(f)
    If LCase(extension) = "jpeg" or LCase(extension) = "jpg" Then
      dest  = fso.BuildPath(testfolder, f.Name)
      count = 0
      Do While fso.FileExists(dest)
        count = count + 1
        dest  = fso.BuildPath(testfolder, basename & "_" & count & "." _
          & extension)
      Loop
      f.Copy dest
    End If
  Next

  For Each sf In fldr.SubFolders
    StartCopy sf
  Next
End Sub
4

1 に答える 1

0

これを試して :

Set fso = CreateObject("Scripting.FileSystemObject")

testfolder = ".\allpictures"
'fso.CreateFolder(testfolder)

StartCopy fso.GetFolder("E:\")

Sub StartCopy(fldr)
  For Each Subfolder in fldr.SubFolders
  For Each f In fldr.Files 
    basename  = fso.GetBaseName(f)
    extension = fso.GetExtensionName(f)
    If LCase(extension) = "jpeg" or LCase(extension) = "jpg" Then
      dest  = fso.BuildPath(testfolder, f.Name)
      count = 0
      Do While fso.FileExists(dest)
        count = count + 1
        dest  = fso.BuildPath(testfolder, basename & "_" & count & "." _
          & extension)
      Loop
      f.Copy dest
    End If
  Next
   StartCopy Subfolder
  Next

  For Each sf In fldr.SubFolders
    StartCopy sf
  Next
End Sub
于 2013-02-11T02:45:21.267 に答える