Batch Datei zum Verschieben von Dateien basierend auf dem Dateinamen, Ordner, basierend auf ein Teil der Ordner-name
Gefunden pyhton ' Lösung hier, aber ich brauche ein batch-Datei-basierte Lösung.
Viele Dateien haben:
- SSP4325_blah-blah-blah.xml
- JKP7645_blah.xml
- YTG6457-blah-blah.xml
- Und Ordnernamen, die ein Stück der Datei-name:
- RefID - SSP4325, JKP7645, GHT1278, YRR0023
- RefID - YTG6457
Ich bin auf der Suche nach einer batch-Lösung, die Lesen ein Teil des Datei namens auf der Vorderseite (vor dem ersten Bindestrich oder Unterstrich) und dann verschieben Sie die Datei in den Ordner, wo die vor den Dateinamen vorhanden ist, als Bestandteil des Ordner-namens.
Also in den obigen Beispielen, die ersten zwei Dateien (SSP4325 und JKP7645) verschoben wurden, in den ersten Ordner, denn es enthielt darin enthaltenen text als Teil des Ordnernamens.
Die Dritte Datei wäre umgezogen in den zweiten Ordner.
Habe ich Hunderte von Dateien und 63 Ordner. Also ich bin der Hoffnung, in der Lage sein, zu automatisieren.
Nicht verwenden können, Powershell oder Python, die aufgrund von Beschränkungen der Umwelt. So in der Hoffnung für eine batch-Datei-Ansatz.
Dank. Sean.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Würden Sie brauchen, um die Einstellungen zu ändern von
sourcedir
unddestdir
Ihren Gegebenheiten angepasst.Den gewünschten MOVE-Befehle sind nur
ECHO
ed für Testzwecke. Nachdem Sie überprüft haben, dass die Befehle korrekt sind, ändernECHO(MOVE
zuMOVE
um tatsächlich die Dateien verschieben. Append>nul
zu unterdrücken Meldungen (zB.1 file moved
)Nach dem Aufbau der Verzeichnisse, die äußere Schleife setzt den Dateinamen in
%%a
die next-Schleife wird der erste Teil des namens, bis zu aber nicht einschließlich der ersten-
oder_
(diedelims
angegeben) in%%b
.Die innere Schleife, findet die target-Verzeichnis containng
%%b
im Ziel-Verzeichnis und erstellt eine entsprechendemove
Linie.Diese Lösung überprüfen Sie die Ordner nur einmal und speichern Sie in einem array, so dass diese Methode sollte schneller laufen.
Diese Methode haben auch mehrere Vorteile: man kann überprüfen, ob ein bestimmter Ordner nicht vorhanden ist, oder die Anzahl der Dateien in jedem Ordner, etc. Wenn Sie nicht daran interessiert sind, diese Punkte, entfernen Sie einfach die
if
Befehl und der code einfacher...Einer Erklärung von array-management in Batch-Dateien erhalten Sie unter diese Antwort.