Wie kann ich einen Ordner in Windows 7 reduzieren, vorausgesetzt, alle Dateinamen sind unterschiedlich?

Wie kann ich einen Ordner in Windows 7 reduzieren, vorausgesetzt, alle Dateinamen sind unterschiedlich?

Angenommen, ich habe die folgende Ordnerhierarchie:

Folder1
   File1
   Folder2
      File2
   Folder3
      File3
      Folder4
         File4

Ich möchte einen Befehl ausführen, der Folgendes ergibt:

Folder1
   File1
   File2
   File3
   File4

oder etwas Ähnliches. Ich kenne mich mit Windows nicht so gut aus, daher wäre ich dankbar für eine möglichst ausführliche Antwort.

Antwort1

Der absolut einfachste Weg ist, den gemeinsamen Stammordner aufzurufen und eine Suche nach allen Dateien durchzuführen (also nach * zu suchen). Wenn alle Dateien gefunden wurden, markieren Sie alle Dateien, drücken Sie Strg + X und navigieren Sie erneut zum gemeinsamen Stammordner. Drücken Sie nun Strg + V, um alle Dateien in den Stammordner einzufügen. Wenn Sie fertig sind, löschen Sie alle Unterverzeichnisse.

Ich weiß nicht, ob dies als Stapelverarbeitungsauftrag möglich ist.

Antwort2

Ich habe diesen Powershell-Ansatz schließlich verwendet, als ich eine große hierarchische Struktur (in meinem Fall PNGs) reduzieren musste:

Get-ChildItem C:\sourcefolder -Recurse -Filter "*.png" | Copy-Item -destination C:\destinationfolder\

Antwort3

Windows-Exe: http://en.sourceforge.jp/projects/sfnet_flatfolder/

oder 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

oder verwendenVerzeichnis Opus

oderPower Shell

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

oderCharge(wie oben erwähnt)

oder die manuelle Suche, Ausschneiden und Einfügen wie oben beschrieben

Es gibt viele Möglichkeiten. Je nach Ihren Fähigkeiten und Neigungen können Sie eine davon auswählen und entsprechend Ihren Anforderungen verfeinern.

Das könnten Sie brauchenLeere Verzeichnisse entfernennach der obigen Operation

Antwort4

Ziemlich einfach mit einer Befehlszeilenoption für diejenigen, die nicht besonders technisch versiert sind.

  1. Erstellen Sie irgendwo eine Datei mit dem Namen „flatten.cmd“
  2. Öffnen Sie die Datei im Editor
  3. Fügen Sie in die Datei Folgendes ein:

    FOR /R {SourcePath} %%G IN (*.mp3) DO move "%%G" {Destination}
    
  4. Ersetzen Sie "{SourcePath}" durch den Ordner, den Sie verkleinern möchten. In Ihrem Fall "c:\Folder1"

  5. Ersetzen Sie "{Destination"} durch den Ordner, in den Sie die Dateien verschieben möchten. In Ihrem Fall also "c:\Folder1". Der Code sollte nun so aussehen:

    FOR /R c:\Folder1 %%G IN (*.mp3) DO move "%%G" c:\Folder1
    
  6. Öffnen Sie ein Befehlszeilenfenster. Dies kann auf verschiedene Arten erfolgen, aber so geht es schnell:

    • Klicken Sie auf die Schaltfläche Start
    • Klicken Sie auf Alle Programme
    • Klicken Sie auf Zubehör
    • Klicken Sie auf Eingabeaufforderung
  7. Geben Sie im Befehlszeilenfenster Folgendes ein:

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

Und damit ist es erledigt (Windows 8+). Ich habe das gerade gemacht, um einen Ordner mit 10.000 Musikdateien zu reduzieren. Funktioniert einwandfrei.

Die Optionen für das FOR-Kommandozeilenprogramm finden Sie unterhttps://technet.microsoft.com/en-us/library/bb490909.aspx.

verwandte Informationen