Massenbewegung über CMD Regex

372
LincM

Ich habe ungefähr 15k Dateien in einem flachen Ordner. Alle haben so etwas wie blah blah - whatever.png. Grundsätzlich möchte ich alle in Ordner namens verschieben blah blah. Ich möchte keine von ihnen umbenennen, sondern sie einfach in ihre jeweiligen Ordner stecken. Ich kann mir vorstellen, dass ich dies mit einer Art Regex tun muss, aber ich scheine nicht zu trainieren, wie man Regex in diesem Kontext anwendet.

0
Ich habe gerade versucht,% A IN (* .docx) zu bewegen. Verschiebe "% A" "^ [^ -] * [^ -] /% A" Und es hat nicht funktioniert: / LincM vor 5 Jahren 0

1 Antwort auf die Frage

1
Berend

Der forBefehl unterstützt keine regulären Ausdrücke.

Angenommen, alle Dateien enthalten ein -Zeichen, könnten Sie diesen Code möglicherweise in einer Batchdatei verwenden:

for /f "delims=- tokens=1* usebackq" %%a in (`dir /b *.png`) do ( if not exist "%%a" mkdir "%%a" move "%%a-%%b" "%%a" ) 

delims=-teilt die Dateinamen auf -und gibt den Namen des Verzeichnisses an, das erstellt wird, wenn es noch nicht existiert. Als nächstes wird der ursprüngliche Dateiname %%a-%%bin dieses Verzeichnis verschoben.

Ich habe das versucht und die Ausgabe bestand darin, Verzeichnisse mit dem Namen "blah blah -" (einschließlich des Bindestrichs) zu erstellen, und es wurde nichts verschoben (vermutlich, weil die Namenskonvention des Verzeichnisses nicht ausgerichtet wurde). Ich habe ein bisschen versucht, es durchzudrehen, aber ich konnte diese Arbeit nicht _ful_ machen. LincM vor 5 Jahren 0
@LincM Das ist merkwürdig. Per Definition sollte das `-` nicht Teil von %% a sein, da der Dateiname darauf aufgeteilt ist. Könnte es sein, dass es nicht wirklich ein Bindestrich ist, sondern ein anderes Symbol für UTF-Striche? Berend vor 5 Jahren 0
Ich glaube nicht, dass es eine andere UTF ist. Möglicherweise verwenden Sie dies als Stapel und nicht als Befehl und sehen, ob es anders funktioniert. LincM vor 5 Jahren 0
@LincM, ja, dieser Code war als Stapel gedacht. Ich werde das meiner Antwort hinzufügen Berend vor 5 Jahren 0
Okay, das funktioniert gut. Ich hatte gehofft, die Struktur verstehen zu können, wie man dies direkt über die Befehlszeile ausführt, anstatt einen Stapel auszuführen, aber damit wird erreicht, was ich will, danke! LincM vor 5 Jahren 0