Eine Möglichkeit, starten Sie tun können, es ist eine Liste der Dateien erstellen, in einer temporären zu bewegen Datei. Verwenden Sie dann die Datei mit dem Befehl for
. Generieren Sie die Liste mit findstr
.
> dir/b/a-d | findstr /v aaa* > "%temp%\@movelist"
> for /f %f in (%temp%\@movelist) do move %f ...
Der erste Befehl wird eine Liste aller Dateien (ohne Verzeichnisse) im aktuellen Verzeichnis und dann Rohre, die Liste zu findstr
das ausschließt (/v
) Dateinamen, die das Muster und legt sie in der @movelist
Datei entsprechen in das temporäre Verzeichnis Der zweite Befehl nimmt nur diese Ergebnisse, so dass Sie tun können, was Sie mit ihnen tun werden (verschieben Sie es).
Es gibt wahrscheinlich einen besseren Weg, um es in einem einzigen Befehl ohne die temporäre Datei zu tun, ich weiß einfach nicht, wie man es schreibt. Ich bin mir nicht sicher, wie ich den Befehl dir
aus dem Befehl for
aufrufen kann. AFAIK es braucht nur Programmdateien, die existieren, keine eingebauten Befehle.
große Lösung! danke – eze1981
Es ist eine Dateikopie, aber kein Zug. Bei großen Dateien kann eine Kopie extrem langsam sein, während eine Bewegung auf demselben Volume fast sofort erfolgt. – Adisak
Hinweis: Ich fand auch die Option '/ S' (Verzeichnisinhalt rekursiv anzeigen) sinnvoll. – Antonio