2011-01-15 5 views
7

Ich habe einen Ordner mit vielen Unterordnern mit jeweils einer oder mehreren Dateien. Ich versuche, eine Batchdatei zu schreiben, die all diese Dateien in C: \ songs (zum Beispiel) verschiebt. Irgendeine Hilfe? Ich habe bereits versucht,DOS-Befehl zum Verschieben aller Dateien in Unterverzeichnissen um eine Ebene nach oben

C:\>FOR /R C:\Test %i IN (*) DO MOVE %i C:\Songs 

Die Ordner-Test und Songs existieren, aber ich erhalte eine Fehlermeldung, dass

%i was unexpected at this time. 

Was mache ich falsch?

Antwort

5
FOR /R %i IN (C:\Test\*) DO MOVE "%i" C:\Songs 

In einer Batch-Datei muss es %% i sein. Seltsame Eigenart der Charge.

+0

Haben Sie das ausgeführt? Für mich hängt es nur an der Konsole. Seltsam. –

+0

Wenn der Ordner massiv ist, wird es lange dauern, alles rekursiv zu analysieren. Ja, ich habe es getestet, auf Win7 und jetzt auf XP. Genuine MS-DOS müsste jedoch \ *. \ * Benötigen. – SilverbackNet

+0

Werke. Danke :) – Rishi

5

(Verschieben von Dateien in Unterverzeichnissen bis 1)

for /r %x in (*.*) do move "%x" "%x"/../.. 

(letzten Teil verwende ich in der Regel nach hinten geneigt ist, aber diese verrückte Sache hielt sie aus irgendeinem Grunde zu löschen. Es wird zwar in beiden Richtungen arbeitet)

(löscht nicht benötigte Verzeichnisse)

for /d /r %x in (bin) do rd "%x" 

dh in „sind“ Verzeichnisse unter jenen , wenn Sie eine Reihe von Verzeichnissen mit Dateien haben und man wollte um alles nach oben 1 zu verschieben und die "bin" -Verzeichnisse zu löschen.

+0

Wie würden Sie den ersten Befehl ändern, um den ausgewählten Ordner anstelle von '(* . *) '? (Dies ist für die Verwendung in einer Batchdatei, die ich dann mit einem benutzerdefinierten Kontextmenübefehl verwenden werde.) – u01jmg3

Verwandte Themen