hallo
abgesehen davon, dass ich sowas nie ernsthaft mit batch-dateien machen würde sondern eher mit vbscript. ich hatte schon 10 minuten, nachdem ich das zeugs geschrieben habe, den code nicht mehr ganz verstanden…
das mit den delims ist so eine blöde sache: du hast recht - in manchen fällen bringt das scipt falsche resultate. aber ohne genaue kenntniss, wie die datei nun aussieht, steht man sowieso auf verlorenem posten. ich habe das leerzeichen nur desshalb drinnen, weil ich davon ausgegangen bin, dass das key-value-paar so aussieht:
key: value
also mit leerzeichen zwischen doppelpunkt und value. nur den doppelpunkt als delimiter aufnehmen bedeutet, dass der value mit einem leerzeichen anfängt. und den entsprechenden code um das leerzeichen rauszuschneiden - aber nur, wenn eines vorhanden ist - war mir dann doch zu mühsam.
ausserdem wäre der code dann nicht mehr in einer einzigen zeile untergekommen - und ich wollte einfach nur beweisen, dass man
a) auch mit batch-dateien ziemlich viel anstellen kann (aber erst seit NT/XP)
b) obwohl ein vorposter behauptet hat, es sei unmöglich, das ganze sogar als einzeiler schreiben kann
c) unlesbarer code kein vorrecht von perl ist
das prinzip ist aber klar - ohne hilfsmittel geht es mit bordmitteln tatsächlich nicht - die console bietet leider keinen befehl für den zugriff auf die zwischenablage (zumindest kenne ich den befehl nicht). aber mit etwas herumtricksen kann man mit reinen batch-dateien (und manchmal kann man einfach nicht was anderes auf einem system installieren) schon recht komplexe lösungen basteln. ich würde aber dringend davon abraten, sowas tatsächlich in einem produktivsystem einzusetzen, da es absolut unwartbar ist und im fehlerfall nicht mehr korrigiert werden kann.
lg
erwin