Top-Themen

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

Frage Entwicklung Batch & Shell

Batchscript zur Installation mehrerer Programme

Mitglied: simonSayz

simonSayz (Level 1) - Jetzt verbinden

18.12.2012 um 16:10 Uhr, 3416 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.

MfG
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 ..
Ähnliche Inhalte
Batch & Shell
Batchscripts
gelöst Frage von perseus21Batch & Shell6 Kommentare

Hallo, ich suche nach einer Lösung um mit CMD folgendes Problem zu lösen: Ich möchte, daß der Benutzer mittels ...

Batch & Shell
Rechteveragbe über Batchscript
gelöst Frage von sanaitBatch & Shell7 Kommentare

Moin Moin, ich habe mir ein Laufwerk gemappt und will nun dort in einem Script die Rechte in den ...

Batch & Shell
Script zur Installation von Programmen
gelöst Frage von Markus2016Batch & Shell4 Kommentare

Hallo zusammen, seid langem habe ich nun endlich mal wieder Zeit gefunden mich mit Powershell zu beschäftigen. Mein Script ...

Installation
Programm in Installation einer Software integrieren lassen
Frage von MarabuntaInstallation8 Kommentare

Hallo, es gibt jede Menge Software die bei Programmen mit installiert wird(Toolbar etc.). Wie nennt man das und wie ...

Neue Wissensbeiträge
Router & Routing

PfSense als Addon auf QNAP

Information von magicteddy vor 2 StundenRouter & Routing

Moin, für Spielereien eine ganz nette Idee aber ich fürchte das soetwas auch als echte Firewall genutzt wird: In ...

Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 9 StundenDatenschutz

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Microsoft

Letzte Updates für Win10 und Server2016 müssen bei Bedarf über den Update catalogue in den WSUS importiert werden!

Tipp von DerWoWusste vor 13 StundenMicrosoft1 Kommentar

automatisch kommt da nichts an im WSUS und auch nicht im SCCM. Siehe Hinweise zum Bezug der jeweils neuesten ...

Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 3 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement22 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...

SAN, NAS, DAS
Wer kennt sich mit QNAP und CISCO aus ?
gelöst Frage von MachelloSAN, NAS, DAS10 Kommentare

Hallo Zusammen hier im Forum, Ich habe ein QNas 451+ und dieses NAS hat zwei GBit Lan Adapter die ...

Windows Server
Terminal Server 2016 erkennt Berechtigungen nicht
gelöst Frage von Thomas2Windows Server10 Kommentare

Hallo Administratoren, folgendes Problem stellt sich dar: Es gibt zwei Windows Server 2016, die als Terminal Server fungieren. Jetzt ...