- ベストアンサー
サブフォルダ内のファイルを一括移動する方法 | VBScriptバッチで解決
- VBScriptのバッチを使用して、サブフォルダ内のファイルを一括で移動する方法を解説します。フォルダ内にあるjpg画像ファイルを対象とします。移動はファイルシステムオブジェクトのFile.Moveを使用して行います。最後にはディレクトリを列挙し、フォルダを削除することも可能です。
- サブフォルダ内のファイルを一括で移動したい場合、VBScriptのバッチを使用することができます。Folderという名前のフォルダ内に存在するサブフォルダに含まれるjpg画像ファイルをすべてFolder直下に移動させることができます。ファイルシステムオブジェクトのFile.Moveを使用することで、ファイルの移動を行うことができます。最後にディレクトリを列挙し、フォルダを削除することもできます。
- VBScriptのバッチを使用して、サブフォルダ内のjpg画像ファイルを一括で移動する方法を解説します。フォルダ内にあるサブフォルダに含まれるjpg画像ファイルをすべてFolder直下に移動させることができます。移動はファイルシステムオブジェクトのFile.Moveを使用して行います。最後にディレクトリを列挙し、フォルダを削除することも可能です。VBScriptのバッチを使用することで、効率的にファイルを移動することができます。
- みんなの回答 (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)
VBSでは無いですが、BATファイルなら↓これで for /r C:\Folder %%F in (*) do move "%%F" C:\Folder