eine kniffige Aufgabe
Aufgabenstellung:
in einem Ordner befinden sich viele Dateien
Diese sollen in passende Ordner sortiert nach ihren Anfangsbuchstaben verschoben werden.
Beispiel
aa.txt wird verschoben in den Ordner a
bb.txt wird verschoben in den Ordner b
u.s.w
Diese Aufgabe soll als Batch automatisch ablaufen.
Der Batch besteht aus 3 Zeilen mit dem Befehlen "for" und "move"
Hat jemand eine Idee?
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
Ein Ansatz:
Lese das erste Zeichen des Dateinamens in einen Substring.
leider ist das nicht die gesuchte Lösung
Der Ansatz ist
for /r %? in (a,b,c,d,e) do move c:\for\a*.txt c:\for\a
allerdings habe ich noch einen dreher in der Syntax oder einen Denkfehler da drin *grummel*
Hmm stimmt, mit dem Asterisk geht's natürlich genau so gut :-)
Es müsste dann allerdings eher so lauten:
for /r %? in (a,b,c,d,e) do move c:\for\%?*.txt c:\for\%?
fast, ich habe ihn grade ausgetüftelt :-)
for /d %a in (a,b,c) do move c:\%a.txt c:\for\%a\
aber danke für deine Hilfe
OK, Bash-Syntax ist mir geläufiger als DOS-Syntax ;-)
Aber prima, wenn du es hinbekommen hast!
Da for ja sowieso zu den NT-Erweiterungen gehört, könnte man dann sicher auch die erweiterte Version von SET verwenden, womit sich Teilstrings (hier nur erster Buchstabe) extrahieren lassen :-)
Gruß
Borlander
PS: ich schieb das mal aufs Programmieren-Brett rüber