Как сделать папку более плоской в ​​Windows 7, если все имена файлов разные?

Как сделать папку более плоской в ​​Windows 7, если все имена файлов разные?

Например, предположим, что у меня есть следующая иерархия папок:

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

windows 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

или использоватьСправочник Опус

илиPowershell

(ls -r -include *.jpg) | % { mv -literal $_ $_.Name.Insert(0, [String]::Format("{0} - ", $_.Directory.Name))}

илиПартия(как уже упоминалось выше)

или ручной поиск, копирование и вставка, как указано выше

Существует множество способов, в зависимости от ваших навыков и наклонностей вы можете выбрать любой из них и усовершенствовать его в соответствии со своими потребностями.

Вам может понадобиться этоУдалить пустые каталогипосле вышеуказанной операции

решение4

Довольно просто, с опцией командной строки для тех, кто не слишком подкован в технических вопросах.

  1. Создайте где-нибудь файл с названием «flatten.cmd»
  2. Откройте этот файл в Блокноте.
  3. В файл поместите следующее:

    FOR /R {SourcePath} %%G IN (*.mp3) DO move "%%G" {Destination}
    
  4. Замените "{SourcePath}" на папку, которую вы хотите сгладить. В вашем случае "c:\Folder1"

  5. Замените "{Destination"} на папку, в которую вы хотите переместить файлы. В вашем случае также "c:\Folder1". Код теперь должен выглядеть так:

    FOR /R c:\Folder1 %%G IN (*.mp3) DO move "%%G" c:\Folder1
    
  6. Откройте окно командной строки. Это можно сделать несколькими способами, но это быстро:

    • Нажмите кнопку «Пуск».
    • Нажмите Все программы.
    • Нажмите «Аксессуары»
    • Нажмите «Командная строка».
  7. В окне командной строки введите:

    cd {folder where you put the flatten.cmd file}
    flatten
    

И это сделает это (Windows 8+) Я только что сделал это, чтобы выровнять папку из 10 000 музыкальных файлов. Работает как по волшебству.

Параметры утилиты командной строки FOR можно найти по адресуhttps://technet.microsoft.com/en-us/library/bb490909.aspx.

Связанный контент