Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

batchprogramierung eine kniffige Aufgabe

PerryR / 6 Antworten / Baumansicht Nickles

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?

bei Antwort benachrichtigen
the_mic PerryR „batchprogramierung eine kniffige Aufgabe“
Optionen

Ein Ansatz:
Lese das erste Zeichen des Dateinamens in einen Substring.

cat /dev/brain > /dev/null
bei Antwort benachrichtigen
PerryR the_mic „Ein Ansatz: Lese das erste Zeichen des Dateinamens in einen Substring.“
Optionen

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*

bei Antwort benachrichtigen
the_mic PerryR „leider ist das nicht die gesuchte Lösung Der Ansatz ist for /r ? in a,b,c,d,e...“
Optionen

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\%?

cat /dev/brain > /dev/null
bei Antwort benachrichtigen
PerryR the_mic „Hmm stimmt, mit dem Asterisk geht s natürlich genau so gut :- Es müsste dann...“
Optionen

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

bei Antwort benachrichtigen
the_mic PerryR „fast, ich habe ihn grade ausgetüftelt :- for /d a in a,b,c do move c: a.txt c:...“
Optionen

OK, Bash-Syntax ist mir geläufiger als DOS-Syntax ;-)
Aber prima, wenn du es hinbekommen hast!

cat /dev/brain > /dev/null
bei Antwort benachrichtigen
Borlander the_mic „Ein Ansatz: Lese das erste Zeichen des Dateinamens in einen Substring.“
Optionen

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

bei Antwort benachrichtigen