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, 2270 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
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows 7
gelöst Sind euch verstärkte Probleme bei Windows 7 Updates aufgefallen? (4)

Frage von RadioHam zum Thema Windows 7 ...

Cloud-Dienste
gelöst OwnCloud 8 Probleme mit Vorschaubildern auf Mobilgeräten (1)

Frage von zeroblue2005 zum Thema Cloud-Dienste ...

Windows 10
gelöst VPN Verbindung Probleme (6)

Frage von Yeter2 zum Thema Windows 10 ...

Windows 10
Windows 10 Start-Probleme - Hilfe (9)

Frage von clragon zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

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

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...