Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme.

mit Batch Aktion ausführen wenn Programm X und Y (evtl. auch Z) nicht mehr laufen

Diskussion: mit Batch Aktion ausführen wenn Programm X und Y (evtl. auch Z) nicht mehr laufen im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Guten Morgen, hab mich hier mal angemeldet, da ich mit einer Sache nicht weiterkomme. Ich möchte für mich eine ...

Antwort
Alt 26.03.11, 03:18   #1 (permalink)
 
Registriert seit: 26.03.11
Schattenspieler Leistung: Facit NTK
Likes: 0
Standard mit Batch Aktion ausführen wenn Programm X und Y (evtl. auch Z) nicht mehr laufen

Anzeige

Guten Morgen,

hab mich hier mal angemeldet, da ich mit einer Sache nicht weiterkomme. Ich möchte für mich eine 7zip SFX Datei erstellen, die den WinRAR Installer ausführt und rarreg.key mitnimmt, damit WinRAR beim Neuaufsetzen von VMs gleich registriert ist.

Momentan hab ich das so gemacht, dass die rarreg.key, der Installer und eine Batch in ein Temp-Verzeichnis entpackt werden. Die 7z SFX ruft dann die Batch Datei auf, die den Installer startet und -da liegt das Problem- wartet bis der fertig ist, um dann das Temp-Verzeichnis zulöschen.

Ganz quick'n'dirty lässt sich das machen, wenn ich einfach folgendes mache:

Code:
winrarivsetup\wrar400d.exe
ping -n 60 localhost > NUL
:clear
echo loesche ...
rd /s /q "%TEMP%\winrarivsetup"
del install.bat
pause >nul
Die Batch wartet dann lange genug, dass man normalerweise den Installer komplett durch hat. Allerdings keine sehr elegante Lösung. Die Alternative sieht so aus:
Code:
rem @echo off
winrarivsetup\wrar400d.exe

:check1
rem cls
ping -n 6 localhost > NUL
TaskList /FI "IMAGENAME eq wrar400d.exe" 2>NUL | Find "wrar400d.exe" >NUL
IF ERRORLEVEL == 1 (
  ECHO NOT Running.
  GOTO check2
  ) ELSE (
    ECHO Running.
    GOTO check1
    )

:check2
rem cls
ping -n 6 localhost > NUL
TaskList /FI "IMAGENAME eq uninstall.exe" 2>NUL | Find "uninstall.exe" >NUL
IF ERRORLEVEL == 1 (
  ECHO NOT Running.
  GOTO clear
  ) ELSE (
    ECHO Running.
    GOTO check1
    )
    
:clear
cls
echo loesche ...
pause >nul
rd /s /q "%TEMP%\winrarivsetup"
del install.bat
pause >nul
Nur leider löscht die Batch dabei schon alles bevor die rarreg.key kopiert wurde. Irgendwie scheint das nicht richtig zu funktionieren. Warum weiß ich allerdings nicht.

Anm.: Die REM, pause und ECHO Befehle sind gesetzt, weil ich dachte, dann zu erfahren, warum er nicht tut, was er soll. Aber Fehlanzeige. Der ping Befehl soll dafür sorgen, dass er nicht ununterbrochen CPU-Last erzeugt, um die lfd. Prozesse zu prüfen.

Wenn ich das richtig sehe, ist die wrar400d.exe der eigentliche Installer, aber danach startet die Uninstall.exe, über die zum einen div. Einstellungen vorgenommen werden können (Dateiverknüpfungen etc.) und die auch autom. die rarreg.key ins Installationsverzeichnis kopiert.

Falls jmd. hier auch eine Idee für ne einfachere/elegantere Lösung ohne Batch hat, bin ich dafür natürlich offen.
Schattenspieler ist offline   Mit Zitat antworten
Alt 26.03.11, 13:52   #2 (permalink)
Member of Honour
 
Benutzerbild von Brabax
 
Registriert seit: 04.10.01
Brabax Leistung: 8086Brabax Leistung: 8086
Brabax eine Nachricht über ICQ schicken
Likes: 42
Standard

Visual Studio Express (-> kostenlos) eignet sich perfekt solche kleinen Installer zu bauen, weil es eine geeignete Thread und Prozesskontrolle hat.

Wenn du es dann auf .NET FW 2 "kompilierst" läuft der Setup auf allen Winsystemen ab XP.

Google diesbezüglich einfach mal nach "VB NET system.process" suchen. Dort dürftest du alles finden, was du brauchst.

In Batch finde ich solche Sachen immer sehr kompliziert umzusetzen.
Wenn es dir aber reicht, kannst du den Prozess mit "start /wait PROZESS" starten - dann wartet Batch bis zum Ende des Durchlaufs.

lG
__________________

<< Wir leben bereits im morgigen Gestern, doch vom gestrigen Morgen sind wir noch weit entfernt. >>

<< Träume sind Schäume. Es liegt an dir ob du sie lebst oder ein Schaumschläger bist! >>

<< Erst wenn man beginnt zu implizieren, wird man merken, dass einem sowieso keiner richtig zuhört. >>
Brabax ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 26.03.11, 14:18   #3 (permalink)
Themenstarter
 
Registriert seit: 26.03.11
Schattenspieler Leistung: Facit NTK
Likes: 0
Standard

Hmm, Visual Studio Express werd ich mir heut abend mal ankucken. Habs halt mit Batch versucht, weil ich mich da vor kurzem wg. was anderm etwas reingelesen hatte. Das Problem ist dabei allerdings, dass der "Setupprozess" ja nicht mit Beenden der eigentlichen wrar400d.exe erledigt ist, sondern diese direkt im Anschluss die (dann installierte) Uninstall.exe startet, die die "Einrichtung" (Einstellungen und Kopieren der rarreg.key) durchführt. Sonst wärs ja "zu einfach". *hrhr*

Nachtrag: Da gibt es verschiedene Varianten zum DL, aber keine die genau "Visual Studio Express" heißt. Vllt. dann "Visual C# 2010 Express"?

Geändert von Schattenspieler (26.03.11 um 14:21 Uhr)
Schattenspieler ist offline   Mit Zitat antworten
Alt 26.03.11, 14:34   #4 (permalink)
Member of Honour
 
Benutzerbild von Brabax
 
Registriert seit: 04.10.01
Brabax Leistung: 8086Brabax Leistung: 8086
Brabax eine Nachricht über ICQ schicken
Likes: 42
Standard

Ist normalerweise egal, aber ich bevorzuge die VB-Version, weil es einfacher zu erlernen ist:

Visual Basic 2010 Express: http://go.microsoft.com/?linkid=9709933

Wenn du Probleme mit dem WebInstaller hast, dann kann man sich auch die ISO ziehen

lG
__________________

<< Wir leben bereits im morgigen Gestern, doch vom gestrigen Morgen sind wir noch weit entfernt. >>

<< Träume sind Schäume. Es liegt an dir ob du sie lebst oder ein Schaumschläger bist! >>

<< Erst wenn man beginnt zu implizieren, wird man merken, dass einem sowieso keiner richtig zuhört. >>
Brabax ist offline   Mit Zitat antworten
Alt 26.03.11, 14:53   #5 (permalink)
Senior Member
 
Benutzerbild von lookshe
 
Registriert seit: 10.03.07
lookshe Leistung: 8086
Likes: 19
Standard

Um das ganze Problem in der Batch zu lösen, sollte ein "start /wait" vor den Befehlen, wo bis zum Beenden gewartet werden soll, reichen. Bei externen Programmen ist Windows Batch so hoch intelligent, dass es neue Prozesse abspaltet und einfach weiterläuft...
lookshe ist offline   Mit Zitat antworten
Alt 26.03.11, 15:53   #6 (permalink)
Themenstarter
 
Registriert seit: 26.03.11
Schattenspieler Leistung: Facit NTK
Likes: 0
Standard

Zitat:
Zitat von lookshe Beitrag anzeigen
Bei externen Programmen ist Windows Batch so hoch intelligent, dass es neue Prozesse abspaltet und einfach weiterläuft...
Das mit dem Abspalten versteh ich grad nicht. Werd mir mal die C#/NET Version raufmachen; hatte mich mit nem Kumpel schonmal issl unterhalten und er hat mir dazu geraten.

Geändert von Schattenspieler (26.03.11 um 21:36 Uhr)
Schattenspieler ist offline   Mit Zitat antworten
Alt 26.03.11, 18:13   #7 (permalink)
Senior Member
 
Benutzerbild von lookshe
 
Registriert seit: 10.03.07
lookshe Leistung: 8086
Likes: 19
Standard

Zitat:
Zitat von Schattenspieler Beitrag anzeigen
Das mit dem Abspalten versteh ich grad nicht.
Das Programm, welches du startest, wird einfach gestartet und dann sofort, ohne auf Beendigung des vorher gestarteten Programmes zu warten, mit dem nächsten Befehl weitergemacht. Probiere doch einfach mal aus, vor den Aufruf des Setups noch "start /wait" zu machen:

Code:
start /wait winrarivsetup\wrar400d.exe
:clear
echo loesche ...
rd /s /q "%TEMP%\winrarivsetup"
del install.bat
pause >nul
lookshe ist offline   Mit Zitat antworten
Antwort

Stichworte
7zip, batch, installer, programme, sfx
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Code Kitchen » mit Batch Aktion ausführen wenn Programm X und Y (evtl. auch Z) nicht mehr laufen
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61