DOS Script

Hier dürfen auch unregistrierte Besucher posten.
Antworten
Fir

DOS Script

Beitrag von Fir »

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
DOSferatu
DOS-Übermensch
Beiträge: 1220
Registriert: Di 25. Sep 2007, 12:05
Kontaktdaten:

Re: DOS Script

Beitrag von DOSferatu »

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.)
Benutzeravatar
Shockwav3
DOS-Übermensch
Beiträge: 1381
Registriert: Mi 9. Mai 2007, 16:42
Wohnort: Berlin XBerg

Re: DOS Script

Beitrag von Shockwav3 »

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.
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
fir

Re: DOS Script

Beitrag von fir »

Vielen Dank für Eure arroganten Antworten.
DOSferatu
DOS-Übermensch
Beiträge: 1220
Registriert: Di 25. Sep 2007, 12:05
Kontaktdaten:

Re: DOS Script

Beitrag von DOSferatu »

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.
jenluvscnd

Hello, few questions

Beitrag von jenluvscnd »

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
Ist der wichtig

Re: DOS Script

Beitrag von Ist der wichtig »

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
freecrac
DOS-Guru
Beiträge: 861
Registriert: Mi 21. Apr 2010, 11:44
Wohnort: Hamburg Horn

Re: DOS Script

Beitrag von freecrac »

Hallo Jürgen.
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
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.)

Dirk Wolfgang Glomp
Nicht wichtig

Re: DOS Script

Beitrag von Nicht wichtig »

Und, konntest du etwas damit anfangen?
freecrac
DOS-Guru
Beiträge: 861
Registriert: Mi 21. Apr 2010, 11:44
Wohnort: Hamburg Horn

Re: DOS Script

Beitrag von freecrac »

Nicht wichtig hat geschrieben:Und, konntest du etwas damit anfangen?
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.

Dirk
Nicht wichtig

Re: DOS Script

Beitrag von Nicht wichtig »

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 :???:
freecrac
DOS-Guru
Beiträge: 861
Registriert: Mi 21. Apr 2010, 11:44
Wohnort: Hamburg Horn

Re: DOS Script

Beitrag von freecrac »

Nicht wichtig hat geschrieben:Emmm, reden (bzw. schreiben) wir über die selbe Sache?
Wir reden über die DOSUTILS und im speziellen über FAM.
Das sind doch alles fertige Programme, die man so benutzen kann, wie sie sind. Am sinnvollsten, aber nicht nur, als Teil von Batch Skripten.
Wie ich schon erwähnt habe, ich selbe brauche so etwas eher selten und wenn, dann schreibe ich es mir auch gerne selber.
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 :???:
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.

Dirk
Antworten