Batchdatei zum Verschieben von Dateien aus Unterverzeichnissen ins Stammverzeichnis, wobei Dateien mit Namenskonflikten überschrieben werden

Batchdatei zum Verschieben von Dateien aus Unterverzeichnissen ins Stammverzeichnis, wobei Dateien mit Namenskonflikten überschrieben werden

Ich bitte also um Hilfe, da ich derzeit versuche, das Chaos in meinen Google-Fotos zu beseitigen. Ich habe das Archiv meiner Google-Fotos heruntergeladen und darin eine Reihe von Ordnern mit Dateien/Fotos. Ich versuche, eine Batchdatei zu schreiben, um die Dateien/Fotos aus dem Ordner in das Stammverzeichnis dieses tragbaren Laufwerks zu verschieben, das ich zum Aufräumen verwende.

Bisher habe ich Folgendes:

@echo off
for /f "tokens=*" %%f in ('dir /a:-D /s /b') do move "%%f" .
for /f "tokens=*" %%f in ('dir /a:D /s /b') do rd "%%f"

Es funktioniert, das einzige Problem, das ich habe, ist, dass sich möglicherweise Fotos mit demselben Dateinamen in verschiedenen Ordnern befinden und ich sie nicht überschreiben möchte.

Gibt es einen Parameter, den ich im Verschiebebefehl festlegen kann, um das Überschreiben zu blockieren?

Danke

Antwort1

Gibt es einen Parameter, den ich im Verschiebebefehl festlegen kann, um das Überschreiben zu blockieren?

Hierzu kann der /-YSchalter (Beim Überschreiben von Dateien Bestätigungsabfrage aktivieren) genutzt werden.

Mit dem folgenden Trick lässt sich das Problem lösen n, so dass der Zug nicht stattfindet:

echo n|move /-y "%%f" .

Anmerkungen:

  • Dieser Trick funktioniert nur für eine einzelne Datei, keine Platzhalter

  • Wenn eine DateinichtWenn Sie den folgenden rdBefehl verschoben haben, schlägt er mit dem folgenden Fehler fehl:

    The directory is not empty.
    

Weitere Informationen

verwandte Informationen