NetSetMan Support
You are not logged in.
- Topics: Active | Unanswered
#1 2014-12-11 08:50
- Ottrott
- Member
- Registered: 2014-12-11
- Posts: 2
Scriptausführung bleibt nach 2 Einträgen hängen
Ich habe das Problem dass die Ausführung des Skripts nach der Profilaktivierung nach 2 Einträgen hängen bleibt.
Das Skript sieht wie folgt aus:
@echo on
"C:\Program Files (x86)\IBM\Notes\notes.exe" "=C:\Program Files (x86)\IBM\Notes\notes.ini"
"C:\Program Files (x86)\XPhone40\XPhone.exe"
"C:\Program Files (x86)\TeamViewer\Version9\TeamViewer.exe"
"C:\Program Files (x86)\Mozilla Firefox\firefox.exe"
exit
Mein Problem ist: jeder Programmaufruf einzeln ist korrekt. Egal in welcher Reihenfolge die Aufrufe im Skript stehen - immer nach dem zweiten Aufruf ist Schluß...
Gibt es hier irgendwelche Einschränkungen über die Anzahl der per Skript ausgeführten Befehle?
Offline
#2 2014-12-11 11:45
- NetSetMan Support
- Administrator
- Registered: 2005-08-06
- Posts: 1,878
Re: Scriptausführung bleibt nach 2 Einträgen hängen
Das ist eigentlich kein Problem von NetSetMan, denn beim Ausführen des bat-Scriptes durch normalen Doppelklick sollten Sie das gleiche Resultat beobachten.
NetSetMan führt die einzelnen Zeilen nicht selbst aus, sondern übergibt das Script an Windows. Was danach damit geschieht, liegt außerhalb des Rahmens von NetSetMan.
Das Problem an Ihrem Script ist, dass bei einem Aufruf von Drittsoftware in dieser Form das Script immer nur dann fortfahren kann, wenn die aktuelle Zeile abgearbeitet wurde. Dies ist jedoch immer erst der Fall, wenn das aufgerufene Programm seine Arbeit getan hat und sich wieder beendet! Sie können dies Überprüfen, indem Sie während der Script-Pause das soeben aufgerufene Programm beenden, dann fährt das Script fort.
Die Lösung ist recht einfach: Führen Sie die Programm mithilfe von "start" aus. Beachten Sie dabei, dass dann der Programmpfad bereits der Aufrufparameter ist und deshalb weitere Parameter nicht in gesonderte Anführungszeichen gesetzt werden dürfen.
Ein Hinweis: Beim normalen Ausführen per start "pfad\programm.exe" wird ein neues Kommandozeilenfenster geöffnet, was nach dem Aufruf offen bleibt. Möchte man das nicht, sollte man beim Aufruf den ersten Parameter leer lassen und das Programm erst im zweiten Parameter übergeben
Dies hier sollte funktionieren:
@echo on
start "" "C:\Program Files (x86)\IBM\Notes\notes.exe =C:\Program Files (x86)\IBM\Notes\notes.ini"
start "" "C:\Program Files (x86)\XPhone40\XPhone.exe"
start "" "C:\Program Files (x86)\TeamViewer\Version9\TeamViewer.exe"
start "" "C:\Program Files (x86)\Mozilla Firefox\firefox.exe"
exit
Es gibt sicherlich noch viele weitere interessante Möglichkeiten, aber auch Schwierigkeiten mit bat-Scripten. Eine Internetrecherche sollte aber stets weiterhelfen.
Zu diesem Fall siehe:
http://superuser.com/questions/465610/c … -program-t
http://stackoverflow.com/questions/2937 … batch-file
Offline
#3 2014-12-11 12:47
- Ottrott
- Member
- Registered: 2014-12-11
- Posts: 2
Re: Scriptausführung bleibt nach 2 Einträgen hängen
Vielen Dank für den Hinweis. Das Verhalten der Skript-Datei "ausserhalb" von NSM kann ich aber so nicht bestätigen. Händisch aufgerufen wird diese komplett & problemlos abgearbeitet.
Offline
#4 2014-12-11 14:27
- NetSetMan Support
- Administrator
- Registered: 2005-08-06
- Posts: 1,878
Re: Scriptausführung bleibt nach 2 Einträgen hängen
Dann muss hierbei aber eine Systemeinstellung das oben beschriebene Standardvorgehen überschreiben. Können Sie bitte prüfen, ob es einen Unterschied macht, ob das Script mit oder ohne Admin-Rechte ausgeführt wird (außerhalb von NetSetMan). Per Rechtsklick auf das Script lässt es sich entsprechend mit Admin-Rechten starten.
Als zweiten Test bitte cmd.exe aufrufen, und von dort aus das Script starten und das Ergebnis vergleichen.
Offline