WinFuture-Forum.de: Script Zum Einsortieren Von Files In Verzeichnissen - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Script Zum Einsortieren Von Files In Verzeichnissen


#1 Mitglied ist offline   SUPER_DAU 

  • Gruppe: Mitglieder
  • Beiträge: 4
  • Beigetreten: 10. Juni 06
  • Reputation: 0

  geschrieben 10. Juni 2006 - 13:22

Hi,

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
0

Anzeige



#2 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 10. Juni 2006 - 16:32

Unter der vorsichtigen Annahme, daß der Verzeichnispfad selbst kein '-' enthält:

for /f "delims=- tokens=1,2" %i in ('dir /s /b *-*.zzz') do (md %i & move %i-%j %i)

Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
0

#3 Mitglied ist offline   SUPER_DAU 

  • Gruppe: Mitglieder
  • Beiträge: 4
  • Beigetreten: 10. Juni 06
  • Reputation: 0

geschrieben 11. Juni 2006 - 15:33

Beitrag anzeigenZitat (Rika: 10.06.2006, 17:32)

Unter der vorsichtigen Annahme, daß der Verzeichnispfad selbst kein '-' enthält:

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
0

#4 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 11. Juni 2006 - 15:47

Zitat

"i" ist syntaktisch an dieser Stelle nicht verarbeitbar.

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

wieso benutzt du /s beim dir... braucht man das?

Weiß ich denn, ob du Unterverzeichnisse hast?

Zitat

und muss beim move %i-%j nicht nach dem %j noch .zzz stehen?

Nein. Das ".zzz" ist ja in %j schon mit drin, da nur nach '-' gesplittet wird.

Zitat

Für was ist das "delims=- und tokens=1,2"

Klarer Fall von RTFM: "help for".
Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
0

#5 Mitglied ist offline   Lofote 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.526
  • Beigetreten: 24. August 04
  • Reputation: 1

geschrieben 11. Juni 2006 - 15:52

Zitat

Wenn du es in eine Batch-Datei (.cmd bzw. .bat) schreibst, obwohl das hier vollkommen überflüssig ist,

Wieso? Woher willste nicht wissen, dass er das immer wieder machen will? Da wäre ne "vorsichtige Annahme" auch eher angebracht :blink:...
Zumal ich bei der Frage nach einem Skript eine Batchdatei für passender halte, als ein Einzeiler, den man in eine Direktconsole komplett eintippt :D...

Zitat

dann musst du natürlich %% statt % nehmen.

Natürlich ist nur der Tod ... und paar wenige andere Dinge :D...
0

#6 Mitglied ist offline   SUPER_DAU 

  • Gruppe: Mitglieder
  • Beiträge: 4
  • Beigetreten: 10. Juni 06
  • Reputation: 0

geschrieben 11. Juni 2006 - 16:12

Nachtrag:

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
0

#7 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 11. Juni 2006 - 16:16

Argh, mein Fehler. Bei potentiellen Leerzeichen sollte man klammern:

for /f "delims=- tokens=1,2" %i in ('dir /s /b *-*.zzz') do (md "%i" & move "%i-%j" "%i")

Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
0

#8 Mitglied ist offline   SUPER_DAU 

  • Gruppe: Mitglieder
  • Beiträge: 4
  • Beigetreten: 10. Juni 06
  • Reputation: 0

geschrieben 11. Juni 2006 - 18:22

Danke, nachdem ich das ganze noch so optimiert habe

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
0

#9 Mitglied ist offline   nobulus 

  • Gruppe: Mitglieder
  • Beiträge: 2
  • Beigetreten: 24. März 09
  • Reputation: 0

geschrieben 24. März 2009 - 15:10

Hallo,

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?
0

#10 Mitglied ist offline   MS Master 

  • Gruppe: aktive Mitglieder
  • Beiträge: 173
  • Beigetreten: 31. Dezember 08
  • Reputation: 0

geschrieben 24. März 2009 - 15:34

@nobulus

Am ende muss es dann nicht "%i" sondern "%i/%j" heißen, dann klappt das auch mit dem umbenennen :D
0

#11 Mitglied ist offline   nobulus 

  • Gruppe: Mitglieder
  • Beiträge: 2
  • Beigetreten: 24. März 09
  • Reputation: 0

geschrieben 24. März 2009 - 16:09

Hallo MS Master,
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
0

#12 Mitglied ist offline   MS Master 

  • Gruppe: aktive Mitglieder
  • Beiträge: 173
  • Beigetreten: 31. Dezember 08
  • Reputation: 0

geschrieben 24. März 2009 - 19:50

Keine Ursache, wenn man kann hilft man doch gerne :D
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0