
例如,假設我有以下資料夾層次結構:
Folder1
File1
Folder2
File2
Folder3
File3
Folder4
File4
我想執行一些命令,結果是:
Folder1
File1
File2
File3
File4
或類似的東西。我對 Windows 不太熟悉,所以我希望答案盡可能詳細。
答案1
最簡單的方法是進入公共根資料夾並蒐索所有檔案(即搜尋*)。找到所有文件後,標記所有文件,按 Ctrl + X 並再次導航到公共根資料夾。現在按 Ctrl + V 將所有檔案貼到根資料夾中。完成後,刪除所有子目錄。
我不知道這是否可以作為批次作業來完成。
答案2
當我需要展平大型分層結構(在我的例子中為 pngs)時,我最終使用了這個 powershell 方法:
Get-ChildItem C:\sourcefolder -Recurse -Filter "*.png" | Copy-Item -destination C:\destinationfolder\
答案3
視窗執行程式: 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/en-us/library/bb490909.aspx。