metric
Goto Top

VBS Script, Ausgabe in Datei, Datei bleibt geöffnet

Hi zusammen,
ich habe eine Frage zu meinem Script.
Als Hintergrundinformation sei gesagt, dass in MyAppStart.bat diverse Dinge erledigt werden, u.a. Taskliste gefiltert abfragen, eine Versiondatei aus einer ThinApp auslesen, Prüfungen von Bedingungen (ob das Program schon läuft etc.), und abhängig davon das eigentliche Programm mit Parametern starten
Die Batch Datei soll unsichtbar ausgeführt werden, darum nebst ein paar anderen Gründen das vorgeschaltete VBS Script. All das funktioniert soweit ohne Probleme.


Set WSHShell = WScript.CreateObject("WScript.Shell")
strAppData = WSHShell.ExpandEnvironmentStrings("%AppData%")
set fs = CreateObject("Scripting.FileSystemObject")
TAdir = (strAppData) & "\Thinstall"
if Not fs.FolderExists(TAdir) Then fs.createfolder (TAdir)
WSHShell.Run "cmd /c MyAppStart.bat >%appdata%\Thinstall\MyAppStart.log",0,false

Meine Frage dazu : Die Datei MyAppStart.log bleibt geöffnet, solange dass eigentlich Programm läuft und kann somit bei einem nochmaligen Ausführen des Scripts nicht neu erzeugt bzw. verändert werden (Beim nochmaligen Start des Scripts will ich ja beim Start prüfen, ob das Programm schon läuft).
Ich habe schon einiges recherchiert und ausprobiert, komme aber an dieser Stelle nicht weiter. Gibt es eine Möglichkeit, die Datei zu schließen (oder meinetwegen auch hart zu löschen ? Ich kann mir die Datei in meiner Batch Datei vorher problemlos kopieren)
Grüße

Content-Key: 189631

Url: https://administrator.de/contentid/189631

Printed on: April 24, 2024 at 04:04 o'clock

Mitglied: 76109
76109 Aug 15, 2012 at 08:04:06 (UTC)
Goto Top
Hallo metric!

Versuchs mal mit einem True am Ende:
WSHShell.Run "cmd /c MyAppStart.bat >%appdata%\Thinstall\MyAppStart.log",0,true
Mit True wartet das Skript auf die Run-Ausführung


Gruß Dieter
Member: metric
metric Aug 15, 2012 at 08:24:24 (UTC)
Goto Top
hatte ich schon getestet, leider keine Änderung
In der Batch Datei wird das eigentliche Programm gestartet, welches dann den ganzen Tag läuft. Solange ist die MyAppStart.log gesperrt
Mitglied: 76109
76109 Aug 15, 2012 at 08:37:04 (UTC)
Goto Top
Hallo metric!

Dann lass Dir von der Batch einen Exitcode zurückgeben (Result=Run...) und schreibe die Log per VB-Scriptface-wink

Gruß Dieter
Member: bastla
bastla Aug 15, 2012 at 09:35:30 (UTC)
Goto Top
Hallo metric und willkommen im Forum!

Wenn Du im Batch das Programm über "start" ausführst, kann ja der Batch weiterlaufen und, worauf es hier ankommt, beendet werden ...

... ansonsten könntest Du den Batch ändern, sodass dort direkt in die "MyAppStart.log" geschrieben wird.

Grüße
bastla
Member: metric
metric Aug 15, 2012 at 14:25:42 (UTC)
Goto Top
Hi,
sorry, dass ich mich erst jetzt melde, hatte viel zu tun...
das mit dem Programmstart per "start" hatte ich schon probiert -> keine Änderung
exitcode habe ich eingebaut -> keine Änderung
die batch und das script laufen beim ersten Start komplett durch und werden auch beendet, nur das Programm läuft zum Schluß noch (so wie es soll).
Nehme ich die "start" Zeile des Programmstarts aus der Batch raus, funktioniert das ganze auch nach dem ersten Start, die log Datei ist nicht geöffnet und kann erneut geschrieben werden.
Ich befürchte fast, ich muss die log Datei wirklich aus der Batch heraus schreiben... oder auf die log Datei verzichten, ich brauch sie nicht zwingend, wäre nur nett.
Da ich hier auch nicht zuviel Zeit reinstecken will, eine abschließende Frage : kann ich am Ende des scripts die geöffnete log Datei hart schließen ? Gibts da etwas ? Ich kenn mich nicht sooo gut aus mit VBS, und mir fällt da grad nichts ein.
Danke erstmal für eure Hilfe und Ideen
Grüße