Meine Batch datei
Brauche Tipps
Ich habe eine sehr einfache frage da ich erst neulich mich mit Batch datein beschäftige weis ich noch nicht so viel über sie
Ich möchte fragen was man noch an diesem Beispiel verbessern oder verändern kann.
Ich habe eine sehr einfache frage da ich erst neulich mich mit Batch datein beschäftige weis ich noch nicht so viel über sie
Ich möchte fragen was man noch an diesem Beispiel verbessern oder verändern kann.
@echo offcolor 71title adininecho * *echo * *echo * *echo *echo * *echo * *echo * *echo Hallo bitte "r" drücken und dann enterset /p ordner=Option:if %ordner%==ja goto ordner:ordnermkdir ordner1mkdir ordner2mkdir ordner3mkdir ordner4mkdir ordner5echo Um die ordner wieder zu loeschen ja enfuegenecho um die ordner zu behalten nein einfuegenset /p ordner=Option:if %ordner%==ja goto lordnerif %ordner%==nein goto lexit:lordnerrmdir ordner1rmdir ordner2rmdir ordner3rmdir ordner4rmdir ordner5:lexitexitpause
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 115546
Url: https://administrator.de/forum/meine-batch-datei-115546.html
Ausgedruckt am: 23.12.2024 um 16:12 Uhr
6 Kommentare
Neuester Kommentar
Moin adinin,
zwei Grundregeln gelten bei Batch genauso wie bei "richtigen" Programmiersprachen:
Zum ersten Punkt: siehe "SetLocal /?" "PushDir/PopDir/?" , "Color /?" am CMD-Prompt
Zum zweiten Punkt:
a) Diese "Prüfung"
...führt dazu, dass der Anwender/die Anwenderin auch "Banane" oder "Dieter Bohlen is' doof" eingeben kann.
Am Programmablauf ändert sich nix.
~~~~
b) diese Reihenfolge
... führt zu einer "pause" wie im richtigen Leben.
Sehr, sehr selten.
Grüße
Biber
zwei Grundregeln gelten bei Batch genauso wie bei "richtigen" Programmiersprachen:
- die Programmumgebung wird genauso verlassen wie vorgefunden. Weder Umgebungsvariablen noch Pfade noch aktuelle Laufwerke noch Farbeinstellungen sind nach Beendigung (oder Absturz) des Programms verändert
- die Programm-Logik muss stimmen.
Zum ersten Punkt: siehe "SetLocal /?" "PushDir/PopDir/?" , "Color /?" am CMD-Prompt
Zum zweiten Punkt:
a) Diese "Prüfung"
....
....
if %ordner%==ja goto ordner
:ordner
...
...führt dazu, dass der Anwender/die Anwenderin auch "Banane" oder "Dieter Bohlen is' doof" eingeben kann.
Am Programmablauf ändert sich nix.
~~~~
b) diese Reihenfolge
...
...
exit
pause
... führt zu einer "pause" wie im richtigen Leben.
Sehr, sehr selten.
Grüße
Biber
Ergänzend zu dem bereits von Biber Gesagten,
Bei If Abfragen ist die Groß-/Kleinschreibung nicht egal, es sei denn du nimmst
Wenn du den Inhalt einer Variable abfragst, die ja auch leer sein kann, solltest du auf beiden Seiten etwas dazufügen was die Prüfung auf Gleichheit nicht beeinflusst aber einen Syntaxfehler vermeidet wenn die Variable eben leer ist.
zum Speibiel
Ansonsten ist Vieles bei der Gestaltung/Formatierung eines Batches eine Gewohnheits-/Geschmakcsfrage.
Als Redundanzfanatiker würde ich eher schreiben :
Gruß
LotPings
Bei If Abfragen ist die Groß-/Kleinschreibung nicht egal, es sei denn du nimmst
If /i
Wenn du den Inhalt einer Variable abfragst, die ja auch leer sein kann, solltest du auf beiden Seiten etwas dazufügen was die Prüfung auf Gleichheit nicht beeinflusst aber einen Syntaxfehler vermeidet wenn die Variable eben leer ist.
If /i "%ordner%"=="ja"
zum Speibiel
Ansonsten ist Vieles bei der Gestaltung/Formatierung eines Batches eine Gewohnheits-/Geschmakcsfrage.
Als Redundanzfanatiker würde ich eher schreiben :
Set OrdnerListe=ordner1 ordner2 ordner3 ordner4 ordner5
For %%A in (%OrdnerListe%) Do MD %%A
:: und
For %%A in (%OrdnerListe%) Do RD /Q /S %%A >NUL
Gruß
LotPings
Öhmm ja. Klingt logisch.
Grüße
Biber
Die Eingabe kannst du nicht so ohne weiteres verhindern, du kannst aber bei nicht vorgegebenen Eingaben einfach erneut fragen.
Gruß
LotPings
PS: laufen können oder nicht, dies ist meines Erachtens eine der effizienstesten Gültigkeitsabfragen.
Fehler mit 3* %%% korrigiert.
:loop
echo Hallo bitte "r" drücken und dann enter
set /p ordner=Option [r/ja] :
If defined ordner for %%A in (r ja) do If /I "%ordner%"=="%%A" goto :Antw_%%A
goto :loop
:AntW_r
:: was auch immer
goto :eof
:AntW_ja
::
Gruß
LotPings
PS: laufen können oder nicht, dies ist meines Erachtens eine der effizienstesten Gültigkeitsabfragen.
Fehler mit 3* %%% korrigiert.