
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.
- Erstellen Sie irgendwo eine Datei mit dem Namen „flatten.cmd“
- Öffnen Sie die Datei im Editor
Fügen Sie in die Datei Folgendes ein:
FOR /R {SourcePath} %%G IN (*.mp3) DO move "%%G" {Destination}
Ersetzen Sie "{SourcePath}" durch den Ordner, den Sie verkleinern möchten. In Ihrem Fall "c:\Folder1"
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
Ö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
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.