DOS Script
DOS Script
Hallo,
ich würde gerne folgendes Linux Script (bash) unter DOS laufen lassen.
for x in {001..061}; do
read -r line ;
echo $line ;
cp "/home/manfredu/Bilder/Bilder 2008/Teneriffa/Teneriffa"$line".JPG" "/home/manfredu/Bilder/Bilder 2008/Teneriffa/"$x"Teneriffa"$line".JPG"
done </home/manfredu/Videos/Diaschau3/Teneriffa/WerteTeneriffa.txt
Das Script liest aus der Datei WerteTeneriffa.txt zeilenweise mehrstellige Zahlen, gibt diese aus und speichert dann die Bilder mit dieser Nummer unter einem neuen Namen. Dabei wird an den Anfang des Dateinamens eine dreistellige, fortlaufende Ziffer, die durch die Variable x in der Schleife for erzeugt wird, gesetzt.
Kann mir da jemand helfen? Wie muß ich das Script verändern?
Gruß Fir
ich würde gerne folgendes Linux Script (bash) unter DOS laufen lassen.
for x in {001..061}; do
read -r line ;
echo $line ;
cp "/home/manfredu/Bilder/Bilder 2008/Teneriffa/Teneriffa"$line".JPG" "/home/manfredu/Bilder/Bilder 2008/Teneriffa/"$x"Teneriffa"$line".JPG"
done </home/manfredu/Videos/Diaschau3/Teneriffa/WerteTeneriffa.txt
Das Script liest aus der Datei WerteTeneriffa.txt zeilenweise mehrstellige Zahlen, gibt diese aus und speichert dann die Bilder mit dieser Nummer unter einem neuen Namen. Dabei wird an den Anfang des Dateinamens eine dreistellige, fortlaufende Ziffer, die durch die Variable x in der Schleife for erzeugt wird, gesetzt.
Kann mir da jemand helfen? Wie muß ich das Script verändern?
Gruß Fir
Re: DOS Script
Zuerst mal würd ich sagen: Unter reinem DOS gibt es keine Dateinamen und Verzeichnisnamen, die länger als 8 Zeichen (plus evtl 3 Zeichen Erweterung nach einem Punkt) sind und auch keine Leerzeichen innerhalb von Dateinamen oder Verzeichnisnamen.
Ich KÖNNTE allerdings ein kleines Programm schreiben, was das gewünschte tut (unter DOS) und für den Fall, daß das DOS unter irgendeiner Art Windows läuft, auch lange Dateinamen berücksichtigt.
EIGENTLICH sollte ich ja DOS-fremde Anfragen nicht unterstützen, weil dies hier ein reines DOS-Forum ist, das nichts mit Windows zu tun hat.
Ich schätze mal (abgesehen von den langen Datei-/Verzeichnisnamen) könnte man das Ganze wohl irgendwie mit Umgebungsvariablen lösen. Ich glaube auch, daß so Batch-Dateien in DOS durchaus auch diesen FOR-Befehl verwenden (obwohl ich den selber noch nie benutzt habe).
Aber ich weiß nicht, ob alles zusammen geht - also: Zeug aus ner Datei in eine Umgebungsvariable einlesen und so weiter...
Aber wie gesagt, als normales ausführbares Programm könnte ich sowas schreiben.
(Ich weiß aber auch, daß ich mich mit Unterstützung DOS-ferner Dinge hier vielleicht etwas unbeliebt machen könnte.)
Ich KÖNNTE allerdings ein kleines Programm schreiben, was das gewünschte tut (unter DOS) und für den Fall, daß das DOS unter irgendeiner Art Windows läuft, auch lange Dateinamen berücksichtigt.
EIGENTLICH sollte ich ja DOS-fremde Anfragen nicht unterstützen, weil dies hier ein reines DOS-Forum ist, das nichts mit Windows zu tun hat.
Ich schätze mal (abgesehen von den langen Datei-/Verzeichnisnamen) könnte man das Ganze wohl irgendwie mit Umgebungsvariablen lösen. Ich glaube auch, daß so Batch-Dateien in DOS durchaus auch diesen FOR-Befehl verwenden (obwohl ich den selber noch nie benutzt habe).
Aber ich weiß nicht, ob alles zusammen geht - also: Zeug aus ner Datei in eine Umgebungsvariable einlesen und so weiter...
Aber wie gesagt, als normales ausführbares Programm könnte ich sowas schreiben.
(Ich weiß aber auch, daß ich mich mit Unterstützung DOS-ferner Dinge hier vielleicht etwas unbeliebt machen könnte.)
Re: DOS Script
DOSferatu: Besser noch, wir sind kein Forum für irgendwelche Hausaufgaben oder faulen FiSis ;)
Nebenbei: Wer so ein Script unter bash hinkriegt, sollte das auch locker nach DOS portieren können ... ausreichend gute Dokus gibt's ja für Beides.
Nebenbei: Wer so ein Script unter bash hinkriegt, sollte das auch locker nach DOS portieren können ... ausreichend gute Dokus gibt's ja für Beides.
Hauptsystem: Asus VL/I-486SV2GX4, DX2 @ 66MHz, 1MB L2 Cache, 64MB RAM, 1GB CF HDD, Cirrus Logic 5428 VLB, ARGUS Prototype Rev. 02 #0, umschaltbarer Covox/DSS-DAC, 2x LPT, DOS 6.22 + Win 3.11
Re: DOS Script
Vielen Dank für Eure arroganten Antworten.
Re: DOS Script
Tja, fir, eigentlich hatte ich ja schon daran gedacht, Dir zu helfen, indem ich Dir ein Programm schreibe, das das gewünschte tut. Ich hatte ja auch Hinweise gegeben, was da in DOS-Batches geht und was nicht. Hinweise auf die unter DOS vorhandenen Beschränkungen, was Dateinamen angeht, halte ich nicht für arrogant, sondern für eine Hilfe (da ich in den Pfaden eben Verzeichnisnamen mit mehr als 8 Zeichen und mit Leerzeichen gesehen habe).
Außerdem habe ich - wohlgemerkt, weil es den FORENREGELN widerspricht, nicht, weil ich nicht helfen will - angemerkt, daß hier Windows-Anfragen nicht erwünscht sind. Das hat NICHTS mit Arroganz zu tun. Die Forenbetreiber wollen, daß dieses Forum ein reines DOS-Forum ist und bleibt und nicht irgendwann zu einem Windows- (oder "alle-Betriebssysteme")-Forum wird - denn von denen gibt es genügend.
Aber wenn Du meinst, die Leute, die Dir (trotz Off-Topic) bereit wären zu helfen oder sogar die Forenbetreiber selbst zu beleidigen wäre die beste Wahl, um Hilfe zu bekommen, bin ich mir nicht wirklich sicher, ob Du die Mühe verdienst. Schade.
Außerdem habe ich - wohlgemerkt, weil es den FORENREGELN widerspricht, nicht, weil ich nicht helfen will - angemerkt, daß hier Windows-Anfragen nicht erwünscht sind. Das hat NICHTS mit Arroganz zu tun. Die Forenbetreiber wollen, daß dieses Forum ein reines DOS-Forum ist und bleibt und nicht irgendwann zu einem Windows- (oder "alle-Betriebssysteme")-Forum wird - denn von denen gibt es genügend.
Aber wenn Du meinst, die Leute, die Dir (trotz Off-Topic) bereit wären zu helfen oder sogar die Forenbetreiber selbst zu beleidigen wäre die beste Wahl, um Hilfe zu bekommen, bin ich mir nicht wirklich sicher, ob Du die Mühe verdienst. Schade.
Hello, few questions
I don't know C++ so can't support you specifically but it seems like you have a reasonable request - have a look on Google to see how others have solved it[url=http://yoldy68y.xanga.com/738850247/awe ... ing-system].[/url] If you find a solution would be great if you could post it here for future reference
Re: DOS Script
Also abgesehen davon dass, wie von anderen ja bereits geschrieben, Dateinamen, die länger als die "berühmten" 8+3 Zeichen sind oder gar Leerzeichen enthalten, unter "echtem DOS", d.h. bis MS-DOS Version 6.22, gar nicht möglich sind, ist der Versuch Linux/UNIX shell skripte "mal eben so" nach DOS zu portieren meistens zum Scheitern verurteilt, da die "DOS shell" d.h. Command.com im Vergleich zu den meisten UNIX shells doch recht spartanisch ausgestattet ist.
Aus genau diesem Grund habe ich vor einiger Zeit einige kleine Programme geschrieben, die dieses Manko, wenigstens zu einem gewissen Teil, ausgleichen können. Du findest diese Programme in einem ZIP-Archiv namens dosutils.zip, das du, zusammen mit einigen anderen Programmen hier: http://www.bttr-software.de/products/jhoffmann/ herunterladen kannst. Allerdings wirst du auch damit dein Skript nicht einfach eins zu eins übertragen können, sondern dennoch einiges umstellen mssen.
Dein Problem, eine Menge von Dateien, deren Namen in einer weiteren Datei abgelegt sind, von einem Verzeichnis in ein anderes zu kopieren und dabei jedem Namen noch eine laufende Nummer voran zu stellen, könnte man z. B. mit Hilfe des Programms FAM lösen. Dieses würde man benutzen, um aus deiner Dateiliste eine (sekundäre) Batchdatei erzeugen zu lassen, die dann ihrerseits das eigentliche Kopieren veranlasst. Konkret könnte das ungefähr so aussehen:
FAM copy \F* \L\F* < Teneriff.txt > \temp\batchfil.bat
@call \temp\batchfil.bat
Aber das ist natürlich nur ein Vorschlag, sicher gibt es auch noch andere Möglichkeiten
Aus genau diesem Grund habe ich vor einiger Zeit einige kleine Programme geschrieben, die dieses Manko, wenigstens zu einem gewissen Teil, ausgleichen können. Du findest diese Programme in einem ZIP-Archiv namens dosutils.zip, das du, zusammen mit einigen anderen Programmen hier: http://www.bttr-software.de/products/jhoffmann/ herunterladen kannst. Allerdings wirst du auch damit dein Skript nicht einfach eins zu eins übertragen können, sondern dennoch einiges umstellen mssen.
Dein Problem, eine Menge von Dateien, deren Namen in einer weiteren Datei abgelegt sind, von einem Verzeichnis in ein anderes zu kopieren und dabei jedem Namen noch eine laufende Nummer voran zu stellen, könnte man z. B. mit Hilfe des Programms FAM lösen. Dieses würde man benutzen, um aus deiner Dateiliste eine (sekundäre) Batchdatei erzeugen zu lassen, die dann ihrerseits das eigentliche Kopieren veranlasst. Konkret könnte das ungefähr so aussehen:
FAM copy \F* \L\F* < Teneriff.txt > \temp\batchfil.bat
@call \temp\batchfil.bat
Aber das ist natürlich nur ein Vorschlag, sicher gibt es auch noch andere Möglichkeiten
Re: DOS Script
Hallo Jürgen.
Dirk Wolfgang Glomp
Auf jeden Fall ein prima Hinweis. Dort werde ich morgen mal stöbern. (Viele Grüße auch an Robert Riebisch dessen Hilfe ich ebenfalls zu schätzen gelernt habe.)Ist der wichtig hat geschrieben:Also abgesehen davon dass, wie von anderen ja bereits geschrieben, Dateinamen, die länger als die "berühmten" 8+3 Zeichen sind oder gar Leerzeichen enthalten, unter "echtem DOS", d.h. bis MS-DOS Version 6.22, gar nicht möglich sind, ist der Versuch Linux/UNIX shell skripte "mal eben so" nach DOS zu portieren meistens zum Scheitern verurteilt, da die "DOS shell" d.h. Command.com im Vergleich zu den meisten UNIX shells doch recht spartanisch ausgestattet ist.
Aus genau diesem Grund habe ich vor einiger Zeit einige kleine Programme geschrieben, die dieses Manko, wenigstens zu einem gewissen Teil, ausgleichen können. Du findest diese Programme in einem ZIP-Archiv namens dosutils.zip, das du, zusammen mit einigen anderen Programmen hier: http://www.bttr-software.de/products/jhoffmann/ herunterladen kannst. Allerdings wirst du auch damit dein Skript nicht einfach eins zu eins übertragen können, sondern dennoch einiges umstellen mssen.
Dein Problem, eine Menge von Dateien, deren Namen in einer weiteren Datei abgelegt sind, von einem Verzeichnis in ein anderes zu kopieren und dabei jedem Namen noch eine laufende Nummer voran zu stellen, könnte man z. B. mit Hilfe des Programms FAM lösen. Dieses würde man benutzen, um aus deiner Dateiliste eine (sekundäre) Batchdatei erzeugen zu lassen, die dann ihrerseits das eigentliche Kopieren veranlasst. Konkret könnte das ungefähr so aussehen:
FAM copy \F* \L\F* < Teneriff.txt > \temp\batchfil.bat
@call \temp\batchfil.bat
Aber das ist natürlich nur ein Vorschlag, sicher gibt es auch noch andere Möglichkeiten
Dirk Wolfgang Glomp
Re: DOS Script
Und, konntest du etwas damit anfangen?
Re: DOS Script
Selber brauche ich so etwas eher selten. Auch kann ich mich mit den C-Sourcen nicht so recht anfreunden, da ich nur in Assembler programmiere.Nicht wichtig hat geschrieben:Und, konntest du etwas damit anfangen?
Dirk
Re: DOS Script
Emmm, reden (bzw. schreiben) wir über die selbe Sache?
Das sind doch alles fertige Programme, die man so benutzen kann, wie sie sind. Am sinnvollsten, aber nicht nur, als Teil von Batch Skripten. Die C-Sourcen sind eigentlich mehr "zur Info" dabei. Wer nicht möchte, muss sich damit überhaupt nicht auseinander setzen und kann trotzdem die Programme sinnvoll benutzen.
Daher hat mich deine letzte Antwort doch etas verwirrt![Confused :???:](./images/smilies/icon_e_confused.gif)
Das sind doch alles fertige Programme, die man so benutzen kann, wie sie sind. Am sinnvollsten, aber nicht nur, als Teil von Batch Skripten. Die C-Sourcen sind eigentlich mehr "zur Info" dabei. Wer nicht möchte, muss sich damit überhaupt nicht auseinander setzen und kann trotzdem die Programme sinnvoll benutzen.
Daher hat mich deine letzte Antwort doch etas verwirrt
![Confused :???:](./images/smilies/icon_e_confused.gif)
Re: DOS Script
Wir reden über die DOSUTILS und im speziellen über FAM.Nicht wichtig hat geschrieben:Emmm, reden (bzw. schreiben) wir über die selbe Sache?
Wie ich schon erwähnt habe, ich selbe brauche so etwas eher selten und wenn, dann schreibe ich es mir auch gerne selber.Das sind doch alles fertige Programme, die man so benutzen kann, wie sie sind. Am sinnvollsten, aber nicht nur, als Teil von Batch Skripten.
Die Sourcen sind für mich die eigentlich interessanten Dinge um Anregungen zu finden es selber zu programmieren, falls jemand mal solche Dinge benötigt.Die C-Sourcen sind eigentlich mehr "zur Info" dabei. Wer nicht möchte, muss sich damit überhaupt nicht auseinander setzen und kann trotzdem die Programme sinnvoll benutzen.
Daher hat mich deine letzte Antwort doch etas verwirrt
Dirk