Verwenden Sie den move
Befehl mit den entsprechenden Argumenten:
move * -2.jpg c: \ somefolder
Haben Sie eine Liste von Farbfotos aus Hatton1.jpg
zu Hatton72.jpg
jedem Foto eine identische schwarze und weiße benannt Hatton1-2.jpg
durchHatton72-2.jpg
Gibt es eine Möglichkeit, die -2-Dateien in ein separates Verzeichnis zu extrahieren?
Verwenden Sie den move
Befehl mit den entsprechenden Argumenten:
move * -2.jpg c: \ somefolder
Dies ist wegen der kurzen Dateinamen etwas knifflig: -
*~N.???
, wobei *
der Anfang des Dateinamens ist und N
eine ganze Zahl ist (wo es nur wenige Kollisionen gibt) - siehe dir /x
.*~2.*
werden bei der Suche einige dieser kurzen Namen sowie die gewünschten Dateien mit *~2.*
dem langen Namen gefunden.In cmd
gehen, in das Verzeichnis mit den Dateien: Sie diejenigen, die Sie wollen auflisten bewegen mit:
dir /b | findstr "~2.jpg"
Idealerweise sollten Sie Folgendes verwenden können:
for /f %f in ('dir /b | findstr "~2.jpg"') do move "%f" NewDirPath
Leider können Sie keine Pipe in einem eingebetteten Befehl in einer for
Schleife verwenden. Sie müssen also zwei Befehle verwenden (oder drei, um die temporäre Datei zu entfernen):
dir /b > Files.lst for /f %f in ('findstr "~2.jpg" Files.txt') do move "%f" NewDirPath del Files.lst
Es ist keine sehr elegante Lösung, aber Sie tun es wahrscheinlich nur einmal. Wenn Sie dies wiederholt ausführen müssen, fügen Sie die Befehle in eine Batchdatei ein und stellen Sie sicher, dass Sie die %
in der Schleifenvariable doppelte Anzahl ändern:
... for /f %%f in ('findstr "~2.jpg" Files.txt') do move "%%f" NewDirPath ...
Verwenden Sie PowerShell, die Sie Get-ChildItem
zusammen mit verwenden können Move-item
.
Es würde ungefähr so aussehen:
Get-ChildItem -Filter '*-2.jpg' -Recurse | %
Ich habe diesen Code nicht getestet, aber er sollte sehr ähnlich sein. Die Verwendung der normalen Windows-Suche und das Ziehen der Dateien würde wahrscheinlich ebenfalls funktionieren.