Script Zum Einsortieren Von Files In Verzeichnissen
#1
geschrieben 10. Juni 2006 - 13:22
Problem:
10000 Files die sortiert werden wollen.
Aufgabe:
Script das folgendes macht.
Lese Dateinamen ein (aufbau immer sooo xxx - yyyy.zzz
das xxx soll dabei als Verzeichnissname hergenommen werden.
leider ist das xxx und yyyy immer unterschiedlich und auch verschieden lang
also z.b.
xxx1 - yyyy1.zzz
xxxxxx3 - yy7.zzz
xxx1 - yy2.zzz
xx8 - yyyyyyy3.zzz
nun sollen praktisch drei verzeichnisse angelegt werden und die dateien jeweils verschoben werden z.b.
-xxx1 <Verzeichniss>
|-xxx1 - yyyy1.zzz
|-xxx1 - yy2.zzz
-xx8 <Verzeichniss>
|-xx8 - yyyyyyy3.zzz
-xxxxxx3 <Verzeichniss>
|-xxxxxx3 - yy7.zzz
is das mittels eines scripts zu machen?
als Trennsymbol dient also immer der " - "
wer hat so ein Script oder kennt ein Programm mit dem man das machen kann
weil per Hand tut man sich da sehr schwer...
mfg SUPER_DAU
Anzeige
#2
geschrieben 10. Juni 2006 - 16:32
for /f "delims=- tokens=1,2" %i in ('dir /s /b *-*.zzz') do (md %i & move %i-%j %i)

Ja, mata ne!
(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
#3
geschrieben 11. Juni 2006 - 15:33
Zitat (Rika: 10.06.2006, 17:32)
for /f "delims=- tokens=1,2" %i in ('dir /s /b *-*.zzz') do (md %i & move %i-%j %i)
danke... nur leider funktioniert es nicht.
er meldet immer
"i" ist syntaktisch an dieser Stelle nicht verarbeitbar.
Desweiteren hab ich Fragen... wieso benutzt du /s beim dir... braucht man das?
und muss beim move %i-%j nicht nach dem %j noch .zzz stehen?
würde mich über weitere tips freun...
Für was ist das "delims=- und tokens=1,2"
thx
SUPER_DAU
#4
geschrieben 11. Juni 2006 - 15:47
Zitat
Wenn du es in eine Batch-Datei (.cmd bzw. .bat) schreibst, obwohl das hier vollkommen überflüssig ist, dann musst du natürlich %% statt % nehmen.
Zitat
Weiß ich denn, ob du Unterverzeichnisse hast?
Zitat
Nein. Das ".zzz" ist ja in %j schon mit drin, da nur nach '-' gesplittet wird.
Zitat
Klarer Fall von RTFM: "help for".

Ja, mata ne!
(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
#5
geschrieben 11. Juni 2006 - 15:52
Zitat
Wieso? Woher willste nicht wissen, dass er das immer wieder machen will? Da wäre ne "vorsichtige Annahme" auch eher angebracht
Zumal ich bei der Frage nach einem Skript eine Batchdatei für passender halte, als ein Einzeiler, den man in eine Direktconsole komplett eintippt
Zitat
Natürlich ist nur der Tod ... und paar wenige andere Dinge
#6
geschrieben 11. Juni 2006 - 16:12
nachdem ich das For usw... direkt im entsprechenden Verzeichniss eingegeben habe(vorher in einer bat file)... legt er zwar die Verzeichnisse an, aber er verschiebt die Files nicht.
Woran kann das liegen... stattdessen kommt nur SYNTAXFEHLER.
Wie es scheint ist der Wurm beim Verschieben drin.
mfg SUPER_DAU
#7
geschrieben 11. Juni 2006 - 16:16
for /f "delims=- tokens=1,2" %i in ('dir /s /b *-*.zzz') do (md "%i" & move "%i-%j" "%i")

Ja, mata ne!
(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
#8
geschrieben 11. Juni 2006 - 18:22
for /f "delims=- tokens=1,2" %i in ('dir /b *-*.zzz') do (md "%i" & move "%i-*" "%i")
funktioneren alle bis auf solche wo kein "-" drin vorkommt...
die restlichen muss ich halt per Hand moven ...
Sauber... das hat mir min nen Tag Arbeit erspart :-D
thx SUPER_DAU
#9
geschrieben 24. März 2009 - 15:10
habe das gleiche Problem wie SuperDau, nur sollen bei mir die Dateien in ein anderes Verzeichnis in Unterordner verschoben werden und dann der Ordnername nicht mehr im Dateinamen erscheinen.
Beispiel:
Quellordner: Ordner1
Datei1: xxx1-yyy.zzz
Datei2: xx2-yyyy.zzz
Datei3: xxxx3-yyyyy.zzz
Datei4: x4- yy.zzz
Ziel: Die Dateien sollen verschoben werden in einen anderen Ordner2, der dann folgende Unterordner und Dateien enthält:
Unterordner1: xxx1, Datei in diesem Ordner soll yyy.zzz heissen
Unterordner2: xx2, Datei in diesem Ordner soll yyyy.zzz heissen
Unterordner3: xxxx3, Datei in diesem Ordner soll yyyyy.zzz heissen
unterordner4: x4, Datei in diesem Ordner soll yy.zzz heissen
Als Tennsymbol dient immer der Bindestrich "-".
Das mit dem verschieben habe ich ja hinbekommen, aber das Umbenennen klappt nicht.
Das ganze soll per Batch oder Script ablaufen.
Weiß jemand Rat?
#10
geschrieben 24. März 2009 - 15:34
Am ende muss es dann nicht "%i" sondern "%i/%j" heißen, dann klappt das auch mit dem umbenennen
#11
geschrieben 24. März 2009 - 16:09
habe es nun hinbekommen, die Funktion sieht als Batchdatei folgendermßen aus:
for /f "delims=- tokens=1,2" %%i in ('dir /b *-*.zzz') do (move "%%i-%%j" "C:\Ordner2\%%i\%%j")
klappt prima, Danke Master!
mfg
nobulus

Hilfe
Neues Thema
Antworten
Nach oben

