
たとえば、次のようなフォルダー階層があるとします。
Folder1
File1
Folder2
File2
Folder3
File3
Folder4
File4
次のような結果になるコマンドを実行したいです:
Folder1
File1
File2
File3
File4
または同様の内容です。私は Windows にあまり詳しくないので、回答にはできるだけ詳しい内容を記載していただければ幸いです。
答え1
最も簡単な方法は、共通ルート フォルダーに入り、すべてのファイルを検索することです (つまり、* を検索します)。すべてのファイルが見つかったら、すべてのファイルをマークし、Ctrl + X を押して、再び共通ルート フォルダーに移動します。次に、Ctrl + V を押して、すべてのファイルをルート フォルダーに貼り付けます。終了したら、すべてのサブディレクトリを削除します。
これをバッチジョブとして実行できるかどうかはわかりません。
答え2
最終的に、大きな階層構造 (私の場合は png) をフラット化する必要があったときに、この PowerShell アプローチを使用しました。
Get-ChildItem C:\sourcefolder -Recurse -Filter "*.png" | Copy-Item -destination C:\destinationfolder\
答え3
ウィンドウズexe: http://en.sourceforge.jp/projects/sfnet_flatfolder/
またはAHK:
fileselectfolder,MyFold,::{20d04fe0-3aea-1069-a2d8-08002b30309d}
SetWorkingDir, %MyFold%
loop, *.*,0,1
{
parentpath := RegExReplace(A_LoopFileDir,"\\","-")
;StringReplace, parentpath, A_LoopFileDir, \,-,All
newname = %parentpath%-%A_LoopFileName%
;msgbox %newname%
If a_loopfiledir <>
filemove, %a_loopfilefullpath%,%newname%
}
loop, %myfold%\*.*,2,1
fileremovedir, %a_loopfilefullpath%,1
exitapp
または使用ディレクトリオプス
またはパワーシェル
(ls -r -include *.jpg) | % { mv -literal $_ $_.Name.Insert(0, [String]::Format("{0} - ", $_.Directory.Name))}
またはバッチ(上記のように)
または手動で検索し、上記のように切り取って貼り付ける
方法は多数あり、あなたのスキルや傾向に応じていずれかを選択し、必要に応じて改良することができます。
これが必要になるかもしれません空のディレクトリを削除する上記の操作後
答え4
あまり技術的に詳しくない人でも使えるように、コマンドライン オプションで非常にシンプルにしました。
- どこかに「flatten.cmd」というファイルを作成します。
- そのファイルをメモ帳で開く
ファイルに次の内容を配置します。
FOR /R {SourcePath} %%G IN (*.mp3) DO move "%%G" {Destination}
「{SourcePath}」をフラット化したいフォルダに置き換えます。この場合、「c:\Folder1」
「{Destination"}」を、ファイルを移動したいフォルダに置き換えます。この場合も「c:\Folder1」です。コードは次のようになります。
FOR /R c:\Folder1 %%G IN (*.mp3) DO move "%%G" c:\Folder1
コマンドライン ウィンドウを開きます。これを行う方法はいくつかありますが、次の方法が最も高速です。
- スタートボタンをクリックします
- すべてのプログラムをクリック
- アクセサリをクリック
- コマンドプロンプトをクリック
コマンドラインウィンドウで、次のように入力します。
cd {folder where you put the flatten.cmd file} flatten
これで完了です (Windows 8 以降)。これを実行して、10,000 個の音楽ファイルのフォルダーをフラット化しました。うまくいきました。
FORコマンドラインユーティリティのオプションについては、以下を参照してください。https://technet.microsoft.com/ja-jp/library/bb490909.aspx。