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

Probleme bei der Kombination von Befehlen

Frage Entwicklung Batch & Shell

Mitglied: Zottelhias

Zottelhias (Level 1) - Jetzt verbinden

11.04.2012 um 19:16 Uhr, 2274 Aufrufe, 8 Kommentare

Guten Tag Forum,

ich habe ein Problem beim kombinieren mehrerer Befehle in einer Batchdatei, die bei 9 unterschiedlichen eingaben 9 verschiedene Dateien (1.bat, 2.bat, 3.bat usw.) aufrufen soll.

Mein Problem sieht wie folgt aus:


set /P X=Eingabe

if errorlevel 1 goto 1
if errorlevel 2 goto 2
if errorlevel 3 goto 3

if errolevel usw...

:1
call cd /Laufwerk:/Pfad/1.bat

:2
call cd /Laufwerk:/Pfad/2.bat

:3
call cd /Laufwerk:/Pfad/3.bat

:usw...


Sollte ich bei der Suche ein Ergebnis übersehen haben, bitte ich um den Link und um verzeihung.


Mit freundlichen Grüßen

Zottelhias
Mitglied: NetWolf
11.04.2012 um 19:34 Uhr
Moin Moin,

wenn du dein Problem "zeigst" und nicht beschreibst, woher sollen wir wissen was nicht funktioniert?
Lass mich raten (sind wir hier beim Jauch? Kann ich was gewinnen?)

Call CD (Change Directory) und dann der Aufruf der Batch - Datei funktioniert nicht?

Grüße aus Rostock
Wolfgang
(Netwolf)
Bitte warten ..
Mitglied: mak-xxl
11.04.2012 um 19:46 Uhr
Moin zottelhias,

Zitat von Zottelhias:
ich habe ein Problem beim kombinieren mehrerer Befehle in einer Batchdatei, die bei 9 unterschiedlichen eingaben 9 verschiedene
Dateien (1.bat, 2.bat, 3.bat usw.) aufrufen soll.

Mein Problem sieht wie folgt aus:
So sieht es aus - und was tut es (nicht)?
set /P X=Eingabe
Das eher so:
01.
set /p eingabe=
if errorlevel 1 goto 1
if errorlevel 2 goto 2
if errorlevel 3 goto 3

if errolevel usw...
Errorlevel helfen hier wenig (das wäre i.e. PureDOS und choice.exe), Du musst vergleichen, etwa so:
01.
if [%eingabe%] == [1] goto :1 
02.
if [%eingabe%] == [2] goto :2
:1
call cd /Laufwerk:/Pfad/1.bat
OS ist Win? oder DOS - dann u.a. Backslashes, also so:
01.
call "D:\Ordner\Unterordner\1.bat" 
02.
goto :end
Wenn Du Laufwerk und Pfade wechseln willst, schau Dir die Hilfe zu 'cd', 'pushd' und 'popd' an. Das 'goto :end' verhindert das Abarbeiten aller nachfolgenden Blocks.

Am Ende des Batches noch ein ':end' notieren, in dem Block kannst Du Code notieren, der zum Schluss ausgeführt wird, z.B. eine Meldung, ein cls etc.

Und benutze beim Posten von Quellcode bitte (auch nachträglich) die <code>-Tags.

Freundliche Grüße von der Insel - Mario
Bitte warten ..
Mitglied: bastla
11.04.2012 um 19:49 Uhr
Hallo Zottelhias!

Ich weiß ja nicht, woher Du die unterscheidlichen Errorlevel erhalten willst - aber wenn Du das tatsächlich mit "if errorlevel"-Abfragen lösen willst, dann aber in absteigender Reihenfolge (da eine solche Abfrage immer auf >= Errorlevel prüft) ...

Da die Eingabe ja aber anscheinend in der Variablen %X% landen soll, wäre eher
01.
if "%X%"=="1" goto :1 
02.
if "%X%"=="2" goto :2 
03.
...
sinnvoll ...

Ach ja - soferne die einzelnen Batches im selben Ordner liegen sollten, würde sich natürlich auch einfach
if exist "D:\Pfad\%X%.bat" call "D:\Pfad\%X%.bat"
oder - wenn's wirklich ein "cd" auch noch sein soll -
if exist "D:\Pfad\%X%.bat" (cd /d "D:\Pfad" & call %X%.bat)
anbieten.

Grüße
bastla

P.S.: Code-Formatierung lässt sich auch im Nachhinein noch hinzufügen ...
Bitte warten ..
Mitglied: bastla
11.04.2012 um 19:54 Uhr
@Mario
Das 'goto end' verhindert das Abarbeiten aller nachfolgenden Blocks.
Und wenn nach dem Aufruf des gewählten Batches dann überhaupt schon Ende sein sollte, könnte einfach auf "call" verzichtet werden ...

Grüße
bastla
Bitte warten ..
Mitglied: Arano
11.04.2012 um 19:55 Uhr
Moin moin

Ich frage mich gerade, ob so überhaupt zu den Marken gesprungen werden kann !?
Steht wirklich die abgefragte Eingabe in der Variable %errorlevel% ?

Kann es gerade nicht selber teste aber es dennoch einwerfen ...aber wir sind hier ja beim Jauch ;)
Hast du den Inhalt von %errorlevel% überprüft !?


~Arano
Bitte warten ..
Mitglied: Zottelhias
11.04.2012 um 20:03 Uhr
Danke an euch, es klappt.


Grüße

Zottelhias
Bitte warten ..
Mitglied: Zottelhias
11.04.2012 um 21:07 Uhr
Die Lösung war einfach.

@set /p X=Eingabe

if /i "%X%"=="1" goto:1
if /i "%X%"=="2" goto:2
if /i "%X%"=="3" goto:3

if /i usw.

:1
call 1.bat


Gruß

Zottelhias
Bitte warten ..
Mitglied: bastla
11.04.2012 um 21:12 Uhr
Hallo Zottelhias!

Das mit dem Formatieren klappt ja leider noch nicht bei Dir - aber immerhin kannst Du mit "if /i" schon sicher stellen, dass es egal ist, ob "1" in Klein- oder Großbuchstaben eingegeben wurde ...

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Windows Update
Immer wieder Probleme mit WSUS (W10 u W2k16 ) (4)

Frage von Leo-le zum Thema Windows Update ...

Netzwerke
gelöst PfSense: Probleme mit Wirksamkeit von Rules (9)

Frage von Fenris14 zum Thema Netzwerke ...

SAN, NAS, DAS
Fujitsu Q800 Probleme bei Domäneneinbindung

Frage von galnar zum Thema SAN, NAS, DAS ...

Mac OS X
Adobe Acrobat Probleme (6)

Frage von uridium69 zum Thema Mac OS X ...

Heiß diskutierte Inhalte
Hardware
Laptop ins Salzwasser gefallen (18)

Frage von Marcel94 zum Thema Hardware ...

Switche und Hubs
LAG zwischen Cisco SG300 und Dlink DGS1100 herstellen - wie? (13)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

Hardware
Lenovo Yoga 500 über angeschlossene USB Tastatur booten (13)

Frage von thomasreischer zum Thema Hardware ...

Viren und Trojaner
Wie werde ich den Mist "fanli90" wieder los? (12)

Frage von Taumel zum Thema Viren und Trojaner ...