So erhalten Sie Dateien aus allen Unterordnern und verschieben Sie sie in den ersten Ordner

400
InstaPoppy

Ich habe ungefähr 3 TB wiederhergestellte Daten von einer defekten Festplatte. Das Problem ist, dass alle Dateien und Ordner vollständig verschlüsselt und in Tausenden von Unterordnern abgelegt sind.

Frage

Gibt es eine Reihe von Befehlen, die ich ausführen kann, um cmdalle Dateien zu finden und sie in den ersten Ordner zu verschieben und leere Unterordner auf dem Weg zu beseitigen?

Wenn die gefundenen Dateien nach Dateierweiterung sortiert und für jede Erweiterung in einem neuen Ordner abgelegt werden können, wäre das noch besser. Ich verwende einen Windows 10-Computer.

1

4 Antworten auf die Frage

0
Win32Guy

Von So kopieren Sie Dateien aus mehreren Unterordnern in einen einzelnen Ordner?

Öffnen Sie ein Eingabeaufforderungsfenster ("cmd.exe"). Verwenden Sie die folgenden Befehle:

cd /d "d:\vacation snaps\2016"  for /r %d in (*) do copy "%d" "d:\all snaps" 

Im obigen Beispiel kopiert der Befehl alle Dateien im Ordner 'vacation snaps \ 2016' rekursiv in den Ordner 'All Snaps'.

Verwenden Sie alternativ die Windows-Suche. Siehe So kopieren Sie Dateien aus mehreren Unterordnern in einen einzelnen Ordner.

Was passiert, wenn das obige Skript auf identische Dateinamen stößt? JohnnyVegas vor 5 Jahren 2
0
JohnnyVegas

Installieren Sie das kostenlose Dienstprogramm 'Everything' von http://voidtools.com/

Dadurch wird jede Datei auf Ihrer Festplatte schnell indiziert. Öffnen Sie ein "Alles" -Fenster und suchen Sie nach allen Dateien, indem Sie '*.*'oder eingeben'driveletter:/folder/*.*

Wenn sich alle Dateien in der Liste befinden, wählen Sie alle aus, klicken Sie dann mit der rechten Maustaste und wählen Sie Kopieren.

Fügen Sie den Ordner in den Ordner ein. Beachten Sie das Dialogfeld Windows 10, das möglicherweise angezeigt wird, wenn Sie versuchen, einen doppelten Dateinamen einzufügen. Sie haben die Möglichkeit, alle umzubenennen und eine Zahl am Ende des Dateinamens zu platzieren.

0
Pimp Juice IT

Batch-Script-Lösung

Sie können den übergeordneten Ordner festlegen, der alle Dateien in der Struktur enthält, die Sie als Variable in den übergeordneten Ordner kopieren müssen. Sie können dann eine Verwendung für / r Schleife und eine bedingte wenn Logik und variable Ersetzungen die Kopie auszuführen, löschen und die Dateierweiterung Ordnererstellung Operationen nach Bedarf.

Sie können eine bedingte Logik verwenden, um zu prüfen, ob eine zu kopierende Datei bereits im Zielordner vorhanden ist. Wenn dies der Fall ist, rufen Sie eine Unterroutine auf und übergeben Sie Variablensubstitute, um sie _(dupe)an diesen Dateinamen anzuhängen, damit vorhandene Dateien nicht mit dem gleichen Ordner überschrieben werden Dateiname.

Um schnell die leeren Verzeichnisse innerhalb des übergeordneten Ordners entfernen können Sie einen ausführen RobocopyBefehl wie, Robocopy <dest> <dest> /S /MOVEwo die destinationund sourceParameter sind beide gleich und gleich den vollen Mutterordnerpfad.

Batch-Skript

@ECHO OFF  SET "Parent=C:\Momma" SET "dupCnt=1"  FOR /R "%Parent%" %%C IN (*) DO ( IF NOT EXIST "%Parent%\%%~XC" MD "%Parent%\%%~XC" IF NOT EXIST "%Parent%\%%~XC\%%~NXC" ( XCOPY /Y /F "%%~C" "%Parent%\%%~XC\" && DEL /Q /F "%%~C" ) ELSE ( CALL :Routine "%Parent%\%%~XC\%%~NXC" "%%~C" "%%~NC" "%%~XC" ) ) Robocopy "%Parent%" "%Parent%" /S /MOVE GOTO :EOF  :Routine IF EXIST "%Parent%\%~4\%~3_(dupe%dupCnt%)%~4" ( SET /A dupCnt=%dupCnt%+1 CALL :Routine "%~1" "%~2" "%~3" "%~4" ) ELSE (  IF EXIST "%~1" ( ECHO F | XCOPY /Y /F "%~2" "%Parent%\%~4\%~3_(dupe%dupCnt%)%~4" && DEL /Q /F "%~2" SET "dupCnt=1" ) ) GOTO :EOF 

Vorher und Nachher Ordnerstrukturbeispiel

Vor

C:\MOMMA ├───Adult-Child │ Adult-Child.jpg │ Adult-Child.txt │ Adult-Child.zzz │ Baby.txt │ ├───Baby │ Adult-Child.txt │ Baby.jpg │ Baby.txt │ Baby.zzz │ Teen.txt │ └───Teen Adult-Child.txt Baby.txt Teen.jpg Teen.txt Teen.zzz 

Nach dem

C:\MOMMA ├───.jpg │ Adult-Child.jpg │ Baby.jpg │ Teen.jpg │ ├───.txt │ Adult-Child.txt │ Adult-Child_(dupe1).txt │ Adult-Child_(dupe2).txt │ Baby.txt │ Baby_(dupe1).txt │ Baby_(dupe2).txt │ Teen.txt │ Teen_(dupe1).txt │ └───.zzz Adult-Child.zzz Baby.zzz Teen.zzz 

Weitere Ressourcen

  • FOR / R
  • OB
  • MD
  • XCOPY
  • DEL
  • ANRUF

  • Batch-Ersetzungen (FOR /?)

    Darüber hinaus wurde die Ersetzung von FOR-Variablenreferenzen verbessert. Sie können jetzt die folgende optionale Syntax verwenden:

    %~I - expands %I removing any surrounding quotes (") %~nI - expands %I to a file name only %~xI - expands %I to a file extension only 
  • EINSTELLEN

    Arithmetische Ausdrücke (SET / a)

    Das Einfügen von Ausdrücken in "Anführungszeichen" ist für einfache Arithmetik optional, jedoch für alle Ausdrücke, die logische Operatoren verwenden.

    Jede SET /ABerechnung, die ein gebrochenes Ergebnis zurückgibt, wird auf die nächste ganze Ganzzahl abgerundet.

    Der auszuwertende Ausdruck kann folgende Operatoren enthalten:

    + Add set /a "_num=_num+5"

hervorragende Antwort JohnnyVegas vor 5 Jahren 1
0
Peter K.

FreeCommander XE ist ein kostenloses Dienstprogramm (Windows Explorer-Alternative), das über eine Flat-View-Funktion verfügt, um alle Dateien im Verzeichnis und in allen Unterverzeichnissen anzuzeigen.

Es verfügt auch über ziemlich leistungsfähige Auswahl- / Suchoptionen, sodass Sie Dateien auf Basis der Erweiterung leicht auswählen und in ein Verzeichnis Ihrer Wahl verschieben können. Natürlich handelt es sich um manuelle Arbeit, aber Sie behalten die Kontrolle darüber, was Sie tun.

Alles in allem ein großartiges Werkzeug, das mir bei der Arbeit mit vielen Dateien ein paar Mal das Leben gerettet hat .