software:diy:batch:dos
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungLetzte ÜberarbeitungBeide Seiten der Revision | ||
software:diy:batch:dos [10/03/2006 14:03] – ergänzt uxt | software:diy:batch:dos [06/04/2007 21:04] – Externe Bearbeitung (Unknown date) 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | {{software: | ||
- | |||
====== Batchen am nackten Pofo ====== | ====== Batchen am nackten Pofo ====== | ||
Zeile 6: | Zeile 4: | ||
* [[hilfe: | * [[hilfe: | ||
* [[hilfe: | * [[hilfe: | ||
+ | |||
===== 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 | + | überhaupt ein Dateiname als Parameter |
IF %1== GOTO ENDE | IF %1== GOTO ENDE | ||
- | funktioinert | + | funktioniert |
- | übergeben wurde. Es ist leider nicht möglich einen Parameter mit einer Leerstelle zu vergleichen. Es gibt auch | + | |
- | kein Symbol, | + | |
Glücklicherweise erlaubt es IF die Bedingungen als " | Glücklicherweise erlaubt es IF die Bedingungen als " | ||
- | " | + | " |
- | nimmt man den " | + | nehmen wir den " |
IF %1.==. GOTO ENDE | IF %1.==. GOTO ENDE | ||
- | Wurde kein Parameter übergeben verzweigt die Batchdatei zur Sprungmarke ENDE.\\ | + | Wurde kein Parameter übergeben, verzweigt die Batchdatei zur Sprungmarke ENDE. |
- | Das selbe gilt für Umgebungsvariablen: | + | Dasselbe |
IF %Name%.==. GOTO NONAME | IF %Name%.==. GOTO NONAME | ||
Falls die Umgebungsvariable " | Falls die Umgebungsvariable " | ||
Sprungmarke NONAME. | Sprungmarke NONAME. | ||
+ | |||
===== Der Parameter %0 ===== | ===== Der Parameter %0 ===== | ||
Zeile 39: | Zeile 37: | ||
anzeigen.\\ | anzeigen.\\ | ||
\\ | \\ | ||
- | Wärend | + | Während |
<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 | + | Nur weil man in einer Batch-Datei ist, muss man nicht auf eine etwas ansprechendere Bildschirmausgabe verzichten. Auch der Befehl ECHO kann so manches |
Beispiel:\\ | Beispiel:\\ | ||
- | Beginnen sie eine Batch-Datei wie gewöhnlich im Text-editor | + | Beginnen sie eine Batch-Datei wie gewöhnlich im Texteditor |
@echo off | @echo off | ||
echo | echo | ||
- | Nach dem zweiten ECHO kommt eine Leerstelle. Schalten sie nun NUMLOCK ein (< | + | Nach dem zweiten ECHO kommt eine Leerstelle. Schalten sie nun NUMLOCK ein (< |
- | Die Batch-Datei | + | Die Batch-Datei |
<code dos> | <code dos> | ||
@echo off | @echo off | ||
Zeile 81: | Zeile 82: | ||
echo ▓▒░TEST | echo ▓▒░TEST | ||
</ | </ | ||
- | 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 Klemmbrett, um 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: | + | |002|Löscht rückwärts bis Zeilenanfang|018|Text-Editor: |
|003|-|019|Text-Editor: | |003|-|019|Text-Editor: | ||
|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 | + | |012|Löscht |
|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, | ||
+ | |═══> | ||
===== Platzhalter (Wildcards) ===== | ===== Platzhalter (Wildcards) ===== | ||
- | Es gibt Programme die keine Platzhalter (* und ?) in Dateinamen bzw. keine Dateimasken akzeptieren. Hier schafft folgende Batch-Datei | + | Es gibt Programme die keine Platzhalter (* und ?) in Dateinamen bzw. keine Dateimasken akzeptieren. Hier schafft folgende Batch-Datei |
<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. | + | 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, |
<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 | ||
</ | </ | ||
+ | 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, |
software/diy/batch/dos.txt · Zuletzt geändert: 16/01/2023 15:01 von kilo