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, 3346 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
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
CMD Verschlüsslung ( Batch ) (11)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

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

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...