2017-05-16 2 views
2

Ich möchte einige Dateien mit bestimmten Erweiterungen in ein Zielverzeichnis verschieben. Hier ist der Teil meiner Batch-Datei:Verschieben Sie Dateien mehrerer Erweiterungen in einer Schleife mit Stapel

move "%filepath%\*.txt" "%~dp0" 
move "%filepath%\*.docx" "%~dp0" 
move "%filepath%\*.pdf" "%~dp0" 
move "%filepath%\*.jpg" "%~dp0" 
move "%filepath%\*.png" "%~dp0" 

Der obige Code funktioniert gut. Aber ich möchte das in einer Schleife machen. Ich versuche, wie die folgenden:

set f_ext=*.txt *.docx *.pdf *.jpg *.png 
for %%f in (%f_ext%) do (
    move "%filepath%\%%f" "%~dp0" 
) 

Der obige Code funktioniert nur, wenn bereits die Dateien von gleichen Namen im Zielordner (%~dp0), aber es funktioniert nicht anders arbeiten.

So wie Dateien von einigen Erweiterungen in einer Schleife bewegen Charge verwenden, die nicht die Dateinamen im Zielordner vorhanden sind erforderlich?

Antwort

2

Das Problem ist, dass die Platzhalter in der for es über die Dateien im aktuellen Active Directory

set f_ext=.txt .docx .pdf .jpg .png 
for %%f in (%f_ext%) do (
    move "%filepath%\*%%f" "%~dp0" 
) 

Ändern Sie den Platzhalter aus dem for (entfernen Sie sie aus der Menge der Erweiterungen) in den move Befehl iterieren machen .

Verwandte Themen