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
Nächste ÜberarbeitungBeide Seiten der Revision
software:diy:batch:dos [10/03/2006 14:03] – ergänzt uxtsoftware:diy:batch:dos [06/04/2007 21:04] – Typo.. rmeissner
Zeile 1: Zeile 1:
-{{software:diy:batch:baustelle.png}} 
- 
 ====== Batchen am nackten Pofo ====== ====== Batchen am nackten Pofo ======
  
Zeile 6: Zeile 4:
   * [[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 =====
Zeile 91: Zeile 91:
   cls   cls
    echo ╔════════════╗    echo ╔════════════╗
-   echo ║ Hallo Welt.║+   echo ║ Hallo Welt.    
    echo ╚════════════╝    echo ╚════════════╝
   pause >nul   pause >nul
Zeile 110: Zeile 110:
 |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 127: Zeile 127:
 ===== 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) =====
Zeile 146: Zeile 150:
 </code> </code>
  
-===== Ein Menu ===== +===== Ein Menü ===== 
-Hier ein Beispiel wie man sich ein kleines Menü zurecht-batchen kann wenn man keinerlei Software hat. +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 Beutzers 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> 
 +@echo off 
 +if not %menop%==quit goto start 
 +del ?.bat 
 +set prompt=%prmpt% 
 +set prmpt= 
 +set menop= 
 +cls 
 +goto cmdlin 
 +:start 
 +cls 
 +if exist 1.bat goto menu 
 +set prmpt=%prompt% 
 +echo wait 6 
 +echo @echo off >1.bat 
 +echo app /e >>1.bat 
 +echo menu.bat >>1.bat 
 +cls 
 +echo wait 5 
 +echo @echo off >2.bat 
 +echo app /w >>2.bat 
 +echo menu.bat >>2.bat 
 +cls 
 +echo wait 4 
 +echo @echo off >3.bat 
 +echo app /a >>3.bat 
 +echo menu.bat >>3.bat 
 +cls 
 +echo wait 3 
 +echo @echo off >4.bat 
 +echo app /d >>4.bat 
 +echo menu.bat >>4.bat 
 +cls 
 +echo wait 2 
 +echo @echo off >5.bat 
 +echo app /c >>5.bat 
 +echo menu.bat >>5.bat 
 +cls 
 +echo wait 1 
 +echo @echo off >6.bat 
 +echo set menop=quit >>6.bat 
 +echo menu.bat >>6.bat 
 +cls 
 +:menu 
 +echo ╔═══ MENU ════════════════════════════╗ 
 +echo ║ 1. Text-editor       4. Diary       ║ 
 +echo ║ 2. Worksheet         5. Calculator  ║ 
 +echo ║ 3. Address-book      6. Quit        ║ 
 +echo ╚═════════════════════════════════════╝ 
 +prompt=your choice: 
 +:cmdlin 
 +</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 Befehlszeiele, 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.txt · Zuletzt geändert: 16/01/2023 15:01 von kilo