Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Meine Batch datei

Frage Entwicklung Batch & Shell

Mitglied: adinin

adinin (Level 1) - Jetzt verbinden

07.05.2009, aktualisiert 19:00 Uhr, 3428 Aufrufe, 6 Kommentare

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.

@echo off
color 71
title adinin
echo * *
echo * *
echo * *
echo *
echo * *
echo * *
echo * *
echo Hallo bitte "r" drücken und dann enter
set /p ordner=Option:
if %ordner%==ja goto ordner
:ordner
mkdir ordner1
mkdir ordner2
mkdir ordner3
mkdir ordner4
mkdir ordner5
echo Um die ordner wieder zu loeschen ja enfuegen
echo um die ordner zu behalten nein einfuegen
set /p ordner=Option:
if %ordner%==ja goto lordner
if %ordner%==nein goto lexit
:lordner
rmdir ordner1
rmdir ordner2
rmdir ordner3
rmdir ordner4
rmdir ordner5
:lexit
exit
pause
Mitglied: Biber
07.05.2009 um 19:48 Uhr
Moin adinin,

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"
01.
.... 
02.
.... 
03.
if %ordner%==ja goto ordner 
04.
:ordner 
05.
...
...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
01.
... 
02.
... 
03.
exit 
04.
pause
... führt zu einer "pause" wie im richtigen Leben.
Sehr, sehr selten.

Grüße
Biber
Bitte warten ..
Mitglied: LotPings
07.05.2009 um 20:19 Uhr
Ergänzend zu dem bereits von Biber Gesagten,

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 :
01.
Set OrdnerListe=ordner1 ordner2 ordner3 ordner4 ordner5 
02.
For %%A in (%OrdnerListe%) Do MD %%A 
03.
:: und  
04.
For %%A in (%OrdnerListe%) Do RD /Q /S %%A  >NUL
Gruß
LotPings
Bitte warten ..
Mitglied: hajowe
08.05.2009 um 08:42 Uhr
Zitat von LotPings:


Als Redundanzfanatiker würde ich eher schreiben :


Du sagst es ja schon selbst.
Aber ich denke er beginnt zu laufen,.
Ist wie bei Kleinkindern erst krabbeln --> laufen --> rennen.

Du solltest ihn mit den höheren gleich zu Beginn überfordern.
Bitte warten ..
Mitglied: Biber
08.05.2009 um 09:53 Uhr
Zitat von hajowe:
Du solltest ihn mit den höheren gleich zu Beginn überfordern.

Öhmm ja. Klingt logisch.

Grüße
Biber
Bitte warten ..
Mitglied: adinin
08.05.2009 um 15:51 Uhr
danke für eure hilf werde versuchen einige sachen besser zu machen.
Wie kann ich machen das man nur ja eingeben kann und sonst geht einfah nix also man kann dann nicht mehr "Dieter Bohlen is' doof" (da muss ich Biber zu stimmen ) eingeben und es geht dann weiter. Wie soll ich das anstellen?
Bitte warten ..
Mitglied: LotPings
08.05.2009 um 16:18 Uhr
Die Eingabe kannst du nicht so ohne weiteres verhindern, du kannst aber bei nicht vorgegebenen Eingaben einfach erneut fragen.

01.
:loop 
02.
echo Hallo bitte "r" drücken und dann enter  
03.
set /p ordner=Option [r/ja] : 
04.
If defined ordner for %%A in (r ja) do If /I "%ordner%"=="%%A" goto :Antw_%%A 
05.
goto :loop 
06.
:AntW_r 
07.
:: was auch immer 
08.
goto :eof 
09.
:AntW_ja 
10.
::
Gruß
LotPings

PS: laufen können oder nicht, dies ist meines Erachtens eine der effizienstesten Gültigkeitsabfragen.
Fehler mit 3* %%% korrigiert.
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Batch & Shell
Ä in batch Datei (12)

Frage von BergEnte zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (13)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...