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, 3438 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Dateinamen mit Batch-Datei ändern - Problem (9)

Frage von fffffuuuuuuuhhhh zum Thema Batch & Shell ...

Batch & Shell
gelöst Teile eines Dateinamens ändern mit Batch Datei (4)

Frage von fffffuuuuuuuhhhh zum Thema Batch & Shell ...

Batch & Shell
gelöst Bestimmte Daten aus CSV per Windows BATCH Datei in .txt Format schreiben lassen. (9)

Frage von freshman2017 zum Thema Batch & Shell ...

Windows Netzwerk
gelöst Netzwerkpfad per Batch-Datei (6)

Frage von AveiroCR7 zum Thema Windows Netzwerk ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(2)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Statische Routen mit ISC-DHCP Server für Android Devices (22)

Frage von terminator zum Thema LAN, WAN, Wireless ...

Server
gelöst Wie erkennen, dass nur deutsche IPs Zugang zu einer Website haben? (22)

Frage von Coreknabe zum Thema Server ...

Exchange Server
gelöst Migration Exchange 2007 zu 2013 - Public Folder teilweise weg (16)

Frage von Andy1987 zum Thema Exchange Server ...

Outlook & Mail
Outlook 2010 mit Exchange 2016 (15)

Frage von slansky zum Thema Outlook & Mail ...