PofoWiki

Die ultimative Informationsquelle zum ATARI Portfolio

Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:diy:batch:dos

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
software:diy:batch:dos [10/03/2006 14:03] – Rechtschreibung uxtsoftware:diy:batch:dos [16/01/2023 15:01] (aktuell) – [Batchen am nackten Pofo] kilo
Zeile 1: Zeile 1:
-{{software:diy:batch:baustelle.png}} 
- 
 ====== Batchen am nackten Pofo ====== ====== Batchen am nackten Pofo ======
  
-Ohne jegliche Zusatzsoftware lassen sich kleine "Programme" schreiben, das Erstellen von Stapelverarbeitungsdateien ist in Portfolios Original-Handbuch beschrieben (siehe [[hardware:doku:handbuchpofo:kapitel2|Handbuch]]). Die AUTOEXEC.BAT ist bereits ein solches "Programm". Unter Tipps & Tricks sind bereits eineige Beispiele aufgeführt:\\+Ohne jegliche Zusatzsoftware lassen sich kleine "Programme" schreiben, das Erstellen von Stapelverarbeitungsdateien ist in Portfolios Original-Handbuch beschrieben (siehe [[hardware:doku:handbuchpofo:kapitel2|Handbuch]]). Die AUTOEXEC.BAT ist bereits ein solches "Programm". Unter Tipps & Tricks sind bereits einige Beispiele aufgeführt:\\
   * [[hilfe:tipps:sonstiges:autopofo]]\\   * [[hilfe:tipps:sonstiges:autopofo]]\\
   * [[hilfe:tipps:sonstiges:autoexec]]\\   * [[hilfe:tipps:sonstiges:autoexec]]\\
 +
  
 ===== Mehr zum Befehl IF ===== ===== Mehr zum Befehl IF =====
 Im Handbuch wird beschrieben wie man mit dem IF Befehl prüft ob eine Datei existiert, nicht aber wie man prüft ob  Im Handbuch wird beschrieben wie man mit dem IF Befehl prüft ob eine Datei existiert, nicht aber wie man prüft ob 
-überhaupt ein Dateiname als Pararmeter übergeben wurde.+überhaupt ein Dateiname als Parameter übergeben wurde.
   IF %1== GOTO ENDE   IF %1== GOTO ENDE
-funktioinert leider nicht, IF hält ENDE für den Befehl der ausgeführt werden soll falls das Wort GOTO als Parameter  +funktioniert leider nicht, IF hält ENDE für den Befehl der ausgeführt werden sollfalls das Wort GOTO als Parameter übergeben wurde. Es ist leider nicht möglicheinen Parameter mit einer Leerstelle zu vergleichen. Es gibt auch kein Symbol, das der Befehl IF als "nichts" interpretiert.
-übergeben wurde. Es ist leider nicht möglich einen Parameter mit einer Leerstelle zu vergleichen. Es gibt auch  +
-kein Symbol, daß der Befehl IF als "nichts" interpretiert.\\+
 Glücklicherweise erlaubt es IF die Bedingungen als "Ketten" zu vergleichen, d.h. man kann "%1Datei" mit  Glücklicherweise erlaubt es IF die Bedingungen als "Ketten" zu vergleichen, d.h. man kann "%1Datei" mit 
-"Datei" vergleichen, kürzer %1D==D. Dies ist wahr wenn %1 leer ist. Um die lesbarkeit der Batch-Datei zu erhalten  +"Datei" vergleichen, kürzer %1D==D. Dies ist wahr wenn %1 leer ist. Um die Lesbarkeit der Batch-Datei zu erhalten 
-nimmt man den "." als Kettenglied:+nehmen wir den "." als Kettenglied:
   IF %1.==. GOTO ENDE   IF %1.==. GOTO ENDE
-Wurde kein Parameter übergeben verzweigt die Batchdatei zur Sprungmarke ENDE.\\ +Wurde kein Parameter übergebenverzweigt die Batchdatei zur Sprungmarke ENDE. 
-Das selbe gilt für Umgebungsvariablen:+Dasselbe gilt für Umgebungsvariablen:
   IF %Name%.==. GOTO NONAME   IF %Name%.==. GOTO NONAME
 Falls die Umgebungsvariable "Name" nicht existiert (also "." gleich "." ist) verzweigt die Batch-Datei zur  Falls die Umgebungsvariable "Name" nicht existiert (also "." gleich "." ist) verzweigt die Batch-Datei zur 
 Sprungmarke NONAME. Sprungmarke NONAME.
 +
  
 ===== Der Parameter %0 ===== ===== Der Parameter %0 =====
Zeile 39: Zeile 37:
 anzeigen.\\ anzeigen.\\
 \\ \\
-Wärend ein PC den Dateinamen mit Erweiterung als Ganzes interpretiert trennt der Portfolio zwischen Datei und Erweiterung. Somit ist die Erweiterung zum Parameter %1=".BAT" geworden. "EINS" ist nun Parameter %2 und "ZWEI" Parameter %3, der in der Batch-Datei ZEIG.BAT nicht abgefragt wird und somit auch nicht mehr auf dem Bildschirm erscheint. Entweder man sorgt dafür, daß Batch-Dateien nie mit der Erweiterung aufgerufen werden, oder man trifft Vorkehrungen in der Datei. Zum Beispiel:\\+Während ein PC den Dateinamen mit Erweiterung als Ganzes interpretiert trennt der Portfolio zwischen Datei und Erweiterung. Somit ist die Erweiterung zum Parameter %1=".BAT" geworden. "EINS" ist nun Parameter %2 und "ZWEI" Parameter %3, der in der Batch-Datei ZEIG.BAT nicht abgefragt wird und somit auch nicht mehr auf dem Bildschirm erscheint. Entweder man sorgt dafür, dass Batch-Dateien nie mit der Erweiterung aufgerufen werden, oder man trifft Vorkehrungen in der Datei. Zum Beispiel:\\
 <code dos> <code dos>
 @echo off @echo off
Zeile 63: Zeile 61:
 und kein Parameter geht verloren. und kein Parameter geht verloren.
 \\ \\
 +
 +
 +
  
 ===== ECHO mit Grafikzeichen ===== ===== ECHO mit Grafikzeichen =====
-Nur weil man in einer Batch-Datei ist muß man nicht auf eine etwas ansprechendere Bildschirmausgabe verzichten. Auch der Befehl ECHO kann so Manches ausgeben wenn man es ihm entsprechend übergibt. Wenn NUMLOCK eingaschaltet ist kann man ASCII-Codes als dreistellige Zahl eingeben. So kann man mit ECHO Grafikzeichen verwenden.+Nur weil man in einer Batch-Datei ist, muss man nicht auf eine etwas ansprechendere Bildschirmausgabe verzichten. Auch der Befehl ECHO kann so manches ausgebenwenn man es ihm entsprechend übergibt. Wenn NUMLOCK eingeschaltet istkann man ASCII-Codes als dreistellige Zahl eingeben. So kann man zusammen mit ECHO Grafikzeichen verwenden.
 Beispiel:\\ Beispiel:\\
-Beginnen sie eine Batch-Datei wie gewöhnlich im Text-editor zu tippen:+Beginnen sie eine Batch-Datei wie gewöhnlich im Texteditor zu tippen:
   @echo off   @echo off
   echo   echo
-Nach dem zweiten ECHO kommt eine Leerstelle. Schalten sie nun NUMLOCK ein (<key>Fn</key>+<key>N</key>), der Cursor ist nun ein Unterstrich und die Tastatur gibt die rot bedruckten Tastencodes wieder. Halten sie <key>Alt</key> gedrückt wärend sie den dreistelligen ASCII-Wert eingeben, z.B. 178 für das Zeichen "▓" (ACHTUNG: die rot bedruckten Tasten verwenden, also <key>J</key>, <key>7</key> und <key>8</key>). Lassen sie <key>Alt</key>  los und das Symbol erscheint auf dem Bildschirm. Als nächstes Zeichen geben wir "▒" ein. Halten sie <key>Alt</key> gedrückt wärend sie <key>J</key> <key>7</key><key>7</key> nacheinander eingeben. Als letztes das Zeichen "░": <key>J</key> <key>7</key><key>O</key>, also ASCII-Code 176.\\ +Nach dem zweiten ECHO kommt eine Leerstelle. Schalten sie nun NUMLOCK ein (<key>Fn</key>+<key>N</key>), der Cursor ist nun ein Unterstrich und die Tastatur gibt die rot bedruckten Tastencodes wieder. Halten sie <key>Alt</key> gedrückt, während sie den dreistelligen ASCII-Wert eingeben, z.B. 178 für das Zeichen "▓" (ACHTUNG: die rot bedruckten Tasten verwenden, also <key>J</key>, <key>7</key> und <key>8</key>). Lassen sie <key>Alt</key>  los und das Symbol erscheint auf dem Bildschirm. Als nächstes Zeichen geben wir "▒" ein. Halten sie <key>Alt</key> gedrückt, während sie <key>J</key> <key>7</key><key>7</key> nacheinander eingeben. Als letztes das Zeichen "░": <key>J</key> <key>7</key><key>O</key>, also ASCII-Code 176.\\ 
-Die Batch-Datei müßte nun so aussehen:+Die Batch-Datei müsste nun so aussehen:
 <code dos> <code dos>
 @echo off @echo off
Zeile 81: Zeile 82:
 echo ▓▒░TEST echo ▓▒░TEST
 </code> </code>
-Um nicht wieder NUMLOCK einschalten und die ASCII-Codes einzeln eingeben zu müssen verwenden sie das Klemmbrett um die Grafik-Zeichen in umgekehrter Reihenfolge an das Ende der Zeile anzuhängen. Dann ist die Zeile vollständig:+Um nicht wieder NUMLOCK einschalten und die ASCII-Codes einzeln eingeben zu müssen verwenden sie das Klemmbrettum die Grafik-Zeichen in umgekehrter Reihenfolge an das Ende der Zeile anzuhängen. Dann ist die Zeile vollständig:
 <code dos> <code dos>
 @echo off @echo off
Zeile 91: Zeile 92:
   cls   cls
    echo ╔════════════╗    echo ╔════════════╗
-   echo ║ Hallo Welt.║+   echo ║ Hallo Welt.    
    echo ╚════════════╝    echo ╚════════════╝
   pause >nul   pause >nul
Zeile 110: Zeile 111:
 |000|-|016|-| |000|-|016|-|
 |001|Cursor springt auf POS1|017|-| |001|Cursor springt auf POS1|017|-|
-|002|Löscht rückwärts bis Zeilenanfang|018|Text-Editor: Erstzen...|+|002|Löscht rückwärts bis Zeilenanfang|018|Text-Editor: Ersetzen...|
 |003|-|019|Text-Editor: Suche...| |003|-|019|Text-Editor: Suche...|
 |004|-|020|-| |004|-|020|-|
Zeile 120: Zeile 121:
 |010|-|026|Springt zum Ende| |010|-|026|Springt zum Ende|
 |011|-|027|Esc| |011|-|027|Esc|
-|012|Löscht gesmate Zeile|028|-|+|012|Löscht gesamte Zeile|028|-|
 |013|Zeilenumbruch|029|-| |013|Zeilenumbruch|029|-|
 |014|-|030|-| |014|-|030|-|
Zeile 127: Zeile 128:
 ===== Das Prompt ===== ===== Das Prompt =====
  
 +Ähnlich wie beim ECHO-Befehl (siehe oben) lassen sich ich beim PROMPT-Befehl die skurrilsten Eingabeaufforderungen gestalten:
 +^^PROMPT^ASCII-Werte|
 +|░▒▓|176, 177, 178|
 +|═══>|205, 205, 205, 041|
  
 ===== Platzhalter (Wildcards) ===== ===== Platzhalter (Wildcards) =====
-Es gibt Programme die keine Platzhalter (* und ?) in Dateinamen bzw. keine Dateimasken akzeptieren. Hier schafft folgende Batch-Datei abhilfe (MASKE.BAT):+Es gibt Programme die keine Platzhalter (* und ?) in Dateinamen bzw. keine Dateimasken akzeptieren. Hier schafft folgende Batch-Datei Abhilfe (MASKE.BAT):
 <code dos> <code dos>
 @echo off @echo off
Zeile 147: Zeile 152:
  
 ===== Ein Menü ===== ===== Ein Menü =====
-Hier ein Beispiel wie man sich ein kleines Menü zurecht-batchen kann wenn man keinerlei Software hat. Wird die Batch-Datei gestartet so erzeugt sie weitere 6 kleine Batch-Dateien, eine für jede mögliche Antwort. Nach dem Verlassen  des Menüs (Punkt 6) werden diese wieder gelöscht.+Hier ein Beispiel wie man sich ein kleines Menü zurecht-batchen kann wenn man keinerlei Software hat. Leider gibt es keinen internen DOS-Befehl mit dem man Benutzereingaben abfragen kann. Dies kann nur die DOS-Befehlszeile. Deshalb muss die Eingabe des Benutzers als Dateiname vorhanden sein. Im folgenden Beispiel sind 6 mögliche Antworten des Benutzers vorgesehen. Wird die Batch-Datei gestartet so erzeugt sie weitere 6 kleine Batch-Dateien, eine für jede mögliche Antwort. Nach dem Verlassen  des Menüs (Punkt 6) werden diese wieder gelöscht.
 <code dos> <code dos>
 @echo off @echo off
Zeile 155: Zeile 160:
 set prmpt= set prmpt=
 set menop= set menop=
 +cls
 goto cmdlin goto cmdlin
 :start :start
-set prmpt=%prompt% 
 cls cls
 if exist 1.bat goto menu if exist 1.bat goto menu
-if exist 6.bat del 6.bat+set prmpt=%prompt%
 echo wait 6 echo wait 6
 echo @echo off >1.bat echo @echo off >1.bat
Zeile 200: Zeile 205:
 :cmdlin :cmdlin
 </code> </code>
 +Sobald sie das Menü und die Eingabeaufforderung sehen haben sie die Batch-Datei bereits verlassen und befinden sich in der DOS-Befehlszeile. Starten sie das Programm deshalb auch nur von der Befehlszeile, nicht vom Filemanager. Die Eingabeaufforderung ist eigentlich das DOS-Prompt, dass entsprechend geändert wurde. Geben sie nun eine der Ziffern zwischen 1 und 6 und ein, drücken sie <key>Enter</key> und die entsprechende, von der Batch-Datei erzeugte Antwort-Datei wird aufgerufen. Hier werden die erwünschten Tätigkeiten abgearbeitet und die Menü-Batch-Datei ein weiteres mal gestartet (nennen wir sie MENU.BAT). Das DOS-Prompt bleibt solange geändert bis sie Menü-Punkt 6 (Quit) gewählt haben. Tun sie dies, so werden die Antwort-Dateien (1.BAT bis 6.BAT) gelöscht und die Eingabeaufforderung in den ursprünglichen Zustand zurückgesetzt.
software/diy/batch/dos.1141997719.txt.gz · Zuletzt geändert: 16/02/2024 17:02 (Externe Bearbeitung)