• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:サブフォルダ内のファイルを全部移動させたい。)

サブフォルダ内のファイルを一括移動する方法 | VBScriptバッチで解決

このQ&Aのポイント
  • VBScriptのバッチを使用して、サブフォルダ内のファイルを一括で移動する方法を解説します。フォルダ内にあるjpg画像ファイルを対象とします。移動はファイルシステムオブジェクトのFile.Moveを使用して行います。最後にはディレクトリを列挙し、フォルダを削除することも可能です。
  • サブフォルダ内のファイルを一括で移動したい場合、VBScriptのバッチを使用することができます。Folderという名前のフォルダ内に存在するサブフォルダに含まれるjpg画像ファイルをすべてFolder直下に移動させることができます。ファイルシステムオブジェクトのFile.Moveを使用することで、ファイルの移動を行うことができます。最後にディレクトリを列挙し、フォルダを削除することもできます。
  • VBScriptのバッチを使用して、サブフォルダ内のjpg画像ファイルを一括で移動する方法を解説します。フォルダ内にあるサブフォルダに含まれるjpg画像ファイルをすべてFolder直下に移動させることができます。移動はファイルシステムオブジェクトのFile.Moveを使用して行います。最後にディレクトリを列挙し、フォルダを削除することも可能です。VBScriptのバッチを使用することで、効率的にファイルを移動することができます。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

この手のコードは 「FileSystemObject 再帰」 のキーワードでググればたくさんサンプルが見つかる。 Excel VBA の標準モジュールなどでステップ実行すると動きを確認できる。 ロジックとしては、、、 サブフォルダーが存在しなくなる最深フォルダーまで潜る。 そのフォルダーにあるファイル群を移動させる。 1階層上のフォルダーに戻る。 先ほどのフォルダーを削除する。 ってのを再帰処理で行う。 Const rootPath = "E:\test\" Dim fso Set fso = CreateObject("Scripting.FileSystemObject") Dim rootDir Set rootDir = fso.GetFolder(rootPath) Call MoveFiles(rootDir) ' 引数としてフォルダー オブジェクトをもらう Sub MoveFiles(aDir)   ' 引数で得たフォルダー内にサブフォルダーがあれば再帰する。   Dim subDir   For Each subDir In aDir.SubFolders     Call MoveFiles(subDir) ' サブフォルダーで再帰処理     subDir.Delete ' 戻ってきたら (フォルダー内が空であるはずなので) フォルダーを削除する   Next   ' 引数で得たフォルダー内のファイル群を移動させる。   Dim f   For Each f In adir.Files     f.Move(rootPath)   Next End Sub

その他の回答 (1)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

VBSでは無いですが、BATファイルなら↓これで for /r C:\Folder %%F in (*) do move "%%F" C:\Folder

関連するQ&A