Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 2296 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 ..
Ähnliche Inhalte
Windows 10
gelöst Psexec + nircmd Kombination (9)

Frage von knitti zum Thema Windows 10 ...

Windows Systemdateien
gelöst Skript in Kombination mit PSExec (11)

Frage von WinLiCLI zum Thema Windows Systemdateien ...

Off Topic
gelöst Suche alle Kombinationen aus 2 und 3 Buchstaben (39)

Frage von Snowboarder1994 zum Thema Off Topic ...

Batch & Shell
Kombinationen - Möglichkeiten in txt schreiben lassen! (8)

Frage von freshman2017 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Infineon TPMs unsicher!

Information von Lochkartenstanzer zum Thema Erkennung und -Abwehr ...

Firewall

PfSense Repository für Version 2.3.x

(2)

Information von Dobby zum Thema Firewall ...

LAN, WAN, Wireless

WPA-2 hat erste Risse: KRACK

(6)

Information von the-buccaneer zum Thema LAN, WAN, Wireless ...

Hardware

GPD Pocket: Winziger Laptop für Wenig Tipper

(1)

Information von pelzfrucht zum Thema Hardware ...

Heiß diskutierte Inhalte
Windows Server
gelöst Gruppenrichtlinie greift nicht zu! (23)

Frage von Syosse zum Thema Windows Server ...

Hosting & Housing
Mailserver Software Empfehlungen (20)

Frage von sunics zum Thema Hosting & Housing ...

Windows 7
gelöst Windows 7 Anmeldedomäne festlegen (13)

Frage von flotaut zum Thema Windows 7 ...