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

Sprungziel im erste Batch aus eine zweite erreichen

Frage Entwicklung Batch & Shell

Mitglied: xxsadmin

xxsadmin (Level 1) - Jetzt verbinden

06.11.2011, aktualisiert 17:33 Uhr, 3350 Aufrufe, 6 Kommentare

Hallo zusammen,

ich versuche eine zweite Batch aufzurufen die eine if Abfrage beinhaltet und wenn diese if Abfrage nicht passt, möchte ich wieder zurück in die erste Batch, an einen bestimmten Sprungziel gehen.
Leider klappt das nicht. Könnt Ihr mir vielleicht ein Tipp geben.

Danke

folgendes Beispiel:

Batch_1:

...
....
call Batch_2

....
....
....

:end
echo End of the Batch


Batch_2

if ..... (
REM hier die zweite Batch weiter bearbeiten.
goto next
) ELSE (
REM hier am ende der erste Bach gehen
goto end
)

:next
...
...
...
Mitglied: bastla
06.11.2011 um 16:46 Uhr
Hallo xxsadmin!

"goto Batch_2" könnte das nur heißen, wenn "Batch_2" in "Batch_1" integriert wäre (was Deine etwas magere Beschreibung - wozu eigentlich die ganze "Herumspringerei"? - aber nicht vermuten lässt) - daher "call Batch_2", wodurch nach dem Ende von "Batch_2" in der Zeile nach diesem "call" die Verarbeitung in "Batch_1" weiter fortgesetzt wird.

Um eine "Rückmeldung" von "Batch_2" zu erhalten, könntest Du diesen mit "exit /b Zahl" beenden, wodurch die "Zahl" als Errorlevel in "Batch_1" ausgewertet werden könnte.

Grüße
bastla
Bitte warten ..
Mitglied: xxsadmin
06.11.2011 um 17:33 Uhr
Hallo bastla,

soll natürlich call Batch_2 heißen

Mit Batch_1 soll Program X installiertet werden. Zuerst wird aber mit Batch_2 geprüft ob das Programm X bereits installiert ist. Wenn Programm X installiert ist wird es zuerst deinstalliert und erst danach wieder installiert. Soll aber bei der Deinstallation ein Fehler auftreten, muss die Abarbeitung abgebrochen werden. Also suche ich eine Möglichkeit die Subroutine (Batch_2) zu beenden bzw. am ende des Skript zu gelangen. GOTO eof z.B. würde aber nur die Subroutine beenden.
Bitte warten ..
Mitglied: 60730
06.11.2011 um 19:16 Uhr
edit...
wer lesen kann....
Bastla hats ganz fies versteckt....

return to Sender
/edit
Bitte warten ..
Mitglied: xxsadmin
06.11.2011 um 20:10 Uhr
Wenn ich den zweite Script an der markierte stelle mit exit beenden würde, würde die Installation in den ersten Script fortgesetzt.
Ich habe die beide Scripts ein wenig detaillierter beschrieben.

Batch_1

01.
@echo=off & setlocal 
02.
 
03.
REM aufruf uninstall 
04.
 
05.
call uninstall.bat 
06.
 
07.
REM ## Installation erstes Programm ## 
08.
set ERRORLEVEL= 
09.
setup.exe /silent 
10.
set INSTALL_ERROR=%ERRORLEVEL% 
11.
if "%INSTALL_ERROR%" == "0" ( 
12.
	echo Install successful >> Logfie.log 
13.
	goto next 
14.
) ELSE ( 
15.
	echo Install error %INSTALL_ERROR% >> Logfile.log 
16.
	goto exit 
17.
18.
	 
19.
:next 
20.
REM ## Installation naechstes Programm ## 
21.
 
22.
:exit 
23.
 
24.
echo Installation fehgeschlagen >> Logfile 
25.
exit %INSTALL_ERROR%
01.
REM ## Pruefung und deinstallation ## 
02.
 
03.
REM ## Prueffen ob Software installiert ist ## 
04.
 
05.
if exist "C:\Program_X ( 
06.
	echo Program ist bereits installiert >> Logfile.log 
07.
	goto uninstall 
08.
) ELSE ( 
09.
	echo Program nicht vorhanden  >> Logfile.log 
10.
	goto next 
11.
12.
set ERRORLEVEL= 
13.
:uninstall 
14.
set INSTALL_ERROR=%ERRORLEVEL% 
15.
if "%INSTALL_ERROR%" == "0" ( 
16.
	echo Uninstall successful >> Logfie.log 
17.
	goto next 
18.
) ELSE ( 
19.
	echo Uninstall Error %INSTALL_ERROR% >> Logfile.log 
20.
	goto exit  ??? <-------- hier soll die Abarbeitung beider Scripts abgebrochen werden. 
21.
22.
 
23.
setup.exe /uninstall 
24.
 
25.
 
26.
:next 
27.
 
28.
REM ## naechstes Program pruefen ##
Bitte warten ..
Mitglied: 60730
06.11.2011 um 20:18 Uhr
salve

naja Bastla hat dir doch den Weg gezeigt (den ich auch zuerst übersehen hatte)

Machs doch viel einfacher..
Du schreibst doch eh ein Log..
Wenn Fehler, dann steht da Uninstall Error

findstr /c:"Uninstall Error" Logfile.log && goto abbruch

Gruß
Bitte warten ..
Mitglied: xxsadmin
06.11.2011 um 21:31 Uhr
Alles klar, danke euch

Jetzt habe ich auch den Unterschied zwischen "exit" und "exit /b" versanden
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Batch und Powershell (2)

Frage von michi-ffm zum Thema Batch & Shell ...

Batch & Shell
gelöst Mittels Batch eine Uhrzeit aus einer .txt auslesen und verabeiten (4)

Frage von Beatzler zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch xls nach aktuellem Datum auslesen und email senden (14)

Frage von michi-ffm zum Thema Batch & Shell ...

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

Frage von Marcel94 zum Thema Hardware ...

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

Frage von thomasreischer 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 ...

CPU, RAM, Mainboards
Hardware Fragen (12)

Frage von xaver-2 zum Thema CPU, RAM, Mainboards ...