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

Batchscript zur Installation mehrerer Programme

Frage Entwicklung Batch & Shell

Mitglied: simonSayz

simonSayz (Level 1) - Jetzt verbinden

18.12.2012 um 16:10 Uhr, 3238 Aufrufe, 6 Kommentare

Hallo, ich möchte per batch-script mehrere Programme vollautomatisch und ohne userinteraktion installieren. (Java, MySQL Community Server sowie eine Softwarelösung der Firma Prodress).

Ich kann euch zwar eine MS Domäne hochziehen aber vom programmieren habe ich wenig Ahnung. Deshalb habe ich das Meiste aus diversen Internetquellen zusammengesammelt.
Die entsprechenden Installationsdateien liegen zusammen mit dem Script in einem Ordner.

Wenn ich nun die Installation ausführen will per rechtsklick und ausführen als Admin, so sehe ich folgende Fehlermeldungen im cmd Fenster (und einen "Fehler" gleich doppelt):

-Der Befehl "else" ist entweder falsch geschrieben oder konnte nicht gefunden werden.

-Der Befehl ""C:\Users\Prodata_User\Desktop\prodress mobil\install.bat"\" ist entweder falsch geschrieben oder konnte nicht gefunden werden.

Diese "Fehlermeldung" bekomme ich insgesamt 5 Mal , die Installation läuft aber dennoch durch!? Gibt es eine Möglichkeit diese Fehler abzustellen bzw "unsichtbar" zu machen so dass der Anwender sie nicht sieht?

Als zusätliche Aufgabenstellung habe ich noch bekommen:

Programme sollen nur installiert werden wenn sie noch nicht installiert sind bzw nicht up2date, wie frage ich das ab?

REM Hier wird überprüft ob das Programm als Admin ausgeführt wird

@echo off
fsutil fsinfo drives %2>NuL
IF %errorlevel% equ 1 goto NOADMIN
else goto START

:START

REM Hier wird Java im passiven Modus installiert, die Zeilen vorher werden benötigt da man ja nicht
REM weiss wo der Anwender nachher den Ordner speichert und die msi sonst nicht gefunden werden kann. REM Passive ist ein Schalter der bei .msi Installationen genutzt werden kann.

%0\
cd %0\..
cd /d %0\..

start /wait "" jre1.7.0_09.msi /passive

REM Hier wird Prodress im stillen Modus installiert, die Zeilen vorher werden benötigt da man ja nicht
REM weiss wo der Anwender nachher den Ordner speichert und die exe sonst nicht gefunden werden kann.
REM Dir gibt den Installationspfad an. In diesem Fall sind passive und dir Schalter von inno setup.

%0\
cd %0\..
cd /d %0\..

start /wait "" Prodress@Net_Server.exe /silent /sp- /DIR=C:\progra~1\Prodress@Net_Server

REM Hier wird MySQL im passiven Modus installiert, die Zeilen vorher werden benötigt da man ja nicht
REM weiss wo der Anwender nachher den Ordner speichert und die jre1...msi sonst nicht gefunden werden REM kann. Passive ist ein Schalter der bei .msi installationen genutzt werden kann.

%0\
cd %0\..
cd /d %0\..

start /wait "" mysql-5.5.28-win32.msi /passive

REM Da bei einer passiven Installation von MySQL keine My.ini geschrieben wird muss diese noch in das
REM entsprechende Verzeichnis kopiert werden. Da man allerdings nicht weiss ob der Anwender die
REM Installation auf einem 32 oder 64 bit System ausführt sind für beide fälle Kopierbefehle
REM vorhanden. Die my.ini welche kopiert wird liegt im selben Ordner wie das Script.
REM /r /y /q sind Schalter von xcopy

%0\
cd %0\..
cd /d %0\..

xcopy "%cd%\my.ini" "C:\Program Files (x86)\MySQL\MySQL Server 5.5" /r /y /q

REM Dies ist der Part fürs kopieren der my.ini in einem 32 Bit Betriebssystem.

%0\
cd %0\..
cd /d %0\..

xcopy "%cd%\my.ini" "C:\Program Files\MySQL\MySQL Server 5.5" /r /y /q

exit

:NOADMIN
echo Please run this program as administrator!
pause
Mitglied: Freund.der.Nacht
18.12.2012 um 17:12 Uhr
Hallo simonSayz,

zur Fehlermeldung mit "else": Du hast einen Syntax-Fehler.
Richtig wäre:

01.
@echo off 
02.
fsutil fsinfo drives %2>NuL 
03.
if %errorlevel%==1 ( 
04.
echo Please run this program as Administrator! 
05.
pause > nul 
06.
exit 
07.
) else ( 
08.
goto START 
09.
)
Was mir hier nicht ganz einleuchtet, ist, warum du alle Laufwerke auflisten lässt.

Die Fehlermeldung kannst du unterdrücken, wenn du hinter die Kopierbefehle " > nul" schreibst. Auch wenn das Unterdrücken sicherlich nicht die beste Lösung ist.

Mit freundlichen Grüßen
Batch-Lord
Bitte warten ..
Mitglied: bastla
19.12.2012 um 01:33 Uhr
@ Batch-Lord
Was mir hier nicht ganz einleuchtet, ist, warum du alle Laufwerke auflisten lässt.
Gemeint sein dürfte
fsutil fsinfo drives >nul 2>nul || goto :NOADMIN
- die Ausgabe der Laufwerke ist uninteressant, aber da "fsutil" mit Adminrechten ausgeführt werden muss, lässt ein Errorlevel <> 0 darauf schließen, dass der Batch nicht als Admin ausgeführt wurde.
@ simonSayz
Von
01.
%0\ 
02.
cd %0\.. 
03.
cd /d "%~f0\.."
ist nur die letzte Zeile sinnvoll (und auch die nur ein einziges Mal vor der ersten Programminstallation), die ersten beiden kannst Du ersatzlos streichen ...

Grüße
bastla
Bitte warten ..
Mitglied: simonSayz
19.12.2012, aktualisiert um 09:16 Uhr
danke ich werde mein script mal anpassen

bastla, ich habe online das hier

cd /d %0\..

gefunden,du schlägst

cd /d "%~f0\.."

vor.

Ist das ein "schreibfehler" oder ein anderer befehl?
Bitte warten ..
Mitglied: bastla
19.12.2012 um 09:08 Uhr
Hallo simonSayz!
Ist das ein "schreibfehler" oder ein anderer befehl?
Gegenfrage: Was hat Dein Test dazu ergeben?

Um aber doch auch zu antworten: Ist nur eine genauere Schreibweise (insbesondere berücksichtigen die Anführungszeichen die Möglichkeit, dass sich im Pfad Leerzeichen befinden) ...

Grüße
bastla
Bitte warten ..
Mitglied: simonSayz
19.12.2012, aktualisiert um 09:26 Uhr
Vielen Dank!
Ich steh bei manchen Problemen echt wie der sprichwörtliche "ochs vorm berge"...

Heut sind nochmal Aufgaben hinzugekommen und ich hab zeit bis ende des Jahres :/

Jetzt muss ich erstmal noch sicherstellen das Java und co nur installiert werden wenn nicht in einer bestimmten Version vorhanden...

Bin über jede weitere Hilfe dankbar ;)
Bitte warten ..
Mitglied: simonSayz
19.12.2012, aktualisiert um 11:43 Uhr
also auch wenn ich damit nicht ganz einverstanden bin:

man sagte ich solle in der registry schauen ob das entsprechende programm bereits installiert ist und wenn ja den entsprechenden teil des scriptes überspringen .
(ja ich weiss das ein vorhandener reg-eintrag nicht heissen muss das die software auch wirklich installiert ist...)

schaue ich nun unter HKEY_LOCAL_MACHINE\SOFTWARE so finde ich keine einträge für java / mysql.

bemühe ich die suchfunktion von regedit so werden mir einige einträge gezeigt...aber keine pfade zu diesen...

könnt ihr mir vielleicht helfen?
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Mac OS X
Installation von macOS 10.12 Sierra auf Xiaomi Mi Notebook Air 12.5

Link von runasservice zum Thema Mac OS X ...

SAN, NAS, DAS
NetApp FAS3240 + DS14MK4 + DS14MK2 Fibre Channel - Installation (4)

Frage von sunny-ko zum Thema SAN, NAS, DAS ...

E-Mail
Mailinglisten mehrerer Domains

Frage von tobilektri zum Thema E-Mail ...

VB for Applications
VBS Script zum versenden mehrerer Verknüpfungen zu Dateien per Lotus Notes

Frage von Sentinel87 zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...