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
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, 3401 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 ..
Ähnliche Inhalte
Router & Routing
Erreichen von einem zweiten Netzwerk via Router (6)

Frage von deschisdo zum Thema Router & Routing ...

LAN, WAN, Wireless
gelöst WD Cloud Festplatte an Fritzbox über zweiten Router erreichen (13)

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

Router & Routing
Eine Steuerung hinter dem OpenVPN Client erreichen (15)

Frage von cannonball zum Thema Router & Routing ...

Neue Wissensbeiträge
Humor (lol)

Wo ist der Fehler auf dem Bild?

(17)

Information von the-buccaneer zum Thema Humor (lol) ...

Windows Update

Offenbar erneutes MS-Update mit Fehlerschleife (2012 R2)

Information von VGem-e zum Thema Windows Update ...

Windows Installation

Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen

(14)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Heiß diskutierte Inhalte
Lizenzierung
Programm soll in verschiedenen Versionen lizenziert sein (20)

Frage von Yanmai zum Thema Lizenzierung ...

Humor (lol)
Wo ist der Fehler auf dem Bild? (17)

Information von the-buccaneer zum Thema Humor (lol) ...

Windows Userverwaltung
Ordner-Rechte für Dom.Admin einschränken? (13)

Frage von kilobyte zum Thema Windows Userverwaltung ...