Programmaufruf über bat - danach automatisches schliessen
Hallo,
ich bin derzeit mit der Betreuung eines Bürorechners betraut und habe folgendes Problem.
Dort soll zum Systemstart Outlook gestarted werden und wenn das gleich über den Autostartordner geht braucht das mit den andren Programmen ziemlich lange (u.a. ist das Gigaset und der Datenabgleich schuld, der bremst einfach alles). Meine Lösung ist eine bat-Datei, welche 60 sec wartet und dann Outlook aufruft.
Leider schliesst sich die Datei nicht nach dem Aufruf von Outlook.
Dies sollte aber geschehen. Nach tagelangem Recherchieren in dem ich cls, go to end, end, close, exit gefunden habe und ohne erfolg versucht habe schreibe ich jetzt hier in diesem spezialistenforum und erhoffe/bitte um Antwort.
bat-Datei:
@echo OFF
ECHO Bitte 1 Minute warten bis Outlook gestartet wird ... Das System ist sonst zu langsam
WAIT 60 KEY
"C:\Programme\Microsoft Office\OFFICE11\OUTLOOK.EXE" /recycle
versucht wurde:
CLS
EXIT
END
GO TO END
CLOSE
GOTO END
:ENDE
das fenster unsichtbar machen ginge mit:
cmdow @ /HID
aber ich wollte das nur als letzten ausweg nutzen.
Ich hoffe ihr könnt mir helfen und bedanke mich schon im vornherein
Gruß Masakari
ich bin derzeit mit der Betreuung eines Bürorechners betraut und habe folgendes Problem.
Dort soll zum Systemstart Outlook gestarted werden und wenn das gleich über den Autostartordner geht braucht das mit den andren Programmen ziemlich lange (u.a. ist das Gigaset und der Datenabgleich schuld, der bremst einfach alles). Meine Lösung ist eine bat-Datei, welche 60 sec wartet und dann Outlook aufruft.
Leider schliesst sich die Datei nicht nach dem Aufruf von Outlook.
Dies sollte aber geschehen. Nach tagelangem Recherchieren in dem ich cls, go to end, end, close, exit gefunden habe und ohne erfolg versucht habe schreibe ich jetzt hier in diesem spezialistenforum und erhoffe/bitte um Antwort.
bat-Datei:
@echo OFF
ECHO Bitte 1 Minute warten bis Outlook gestartet wird ... Das System ist sonst zu langsam
WAIT 60 KEY
"C:\Programme\Microsoft Office\OFFICE11\OUTLOOK.EXE" /recycle
versucht wurde:
CLS
EXIT
END
GO TO END
CLOSE
GOTO END
:ENDE
das fenster unsichtbar machen ginge mit:
cmdow @ /HID
aber ich wollte das nur als letzten ausweg nutzen.
Ich hoffe ihr könnt mir helfen und bedanke mich schon im vornherein
Gruß Masakari
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 79143
Url: https://administrator.de/contentid/79143
Ausgedruckt am: 25.11.2024 um 21:11 Uhr
14 Kommentare
Neuester Kommentar
Ist zwar nicht elegant, aber es funktioniert...
IF EXIST "c:\outlook.vbs" DEL "c:\outlook.vbs"
echo Set wshshell = CreateObject("Wscript.Shell") >> d:\outlook.vbs
echo wshshell.Run """C:\Programme\Microsoft Office\OFFICE11\outlook.exe""" >> d:\outlook.vbs
TIMEOUT 60
WSCRIPT d:\outlook.vbs 'geht auch mit CSCRIPT
IF EXIST "c:\outlook.vbs" DEL "c:\outlook.vbs"
Moin Masakari,
wenn es nur darum geht, dass sich das CMD-Fenster nach dem Outlook-Starten wieder schließt, dann reicht es natürlich, wenn Du es mit "Start "" "c:\..outlook.exe /recycle" aufrufst. Siehe Hilfe zu START (Start /? am CMD-Prompt).
Wenn das CMD-Fenster gar nicht zu sehen sein soll - irgendwo hier im Forum ist auch ein "RunABatMinimed.vbs" zu finden - unter den Suchbegriffen "Batch minimiert ausführen" oder so.
Aber dann wäre es in der Tat Unsinn, nicht gleich den Rest auch via VBS zu erledigen. Siehe Rubberducks Skizze.
Grüße
Biber
wenn es nur darum geht, dass sich das CMD-Fenster nach dem Outlook-Starten wieder schließt, dann reicht es natürlich, wenn Du es mit "Start "" "c:\..outlook.exe /recycle" aufrufst. Siehe Hilfe zu START (Start /? am CMD-Prompt).
Wenn das CMD-Fenster gar nicht zu sehen sein soll - irgendwo hier im Forum ist auch ein "RunABatMinimed.vbs" zu finden - unter den Suchbegriffen "Batch minimiert ausführen" oder so.
Aber dann wäre es in der Tat Unsinn, nicht gleich den Rest auch via VBS zu erledigen. Siehe Rubberducks Skizze.
Grüße
Biber
Versuchs doch mit TIMEOUT, wie ich es in meinem Beispiel bereits verwendet habe.
Der Fehler aus Deinem ersten Edit ist interessant...
Da Du schreibst, dass Du Dich mit Scripts nicht so auskennst, versuche ich es ein wenig zu Erklären:
Zeile 1: Per Batch wird geprüft, ob das angegebene .VBS (c:\outlook.vbs) existiert. Wenn ja, wird es gelöscht. Braucht kein then.
Zeile 2,3: Hier werden zwei Codezeilen VBS via Batch in eine VBS-Datei geschrieben (Der Aufruf von Outlook)
Zeile 5: Per Batch 60 Sekunden warten
Zeile 6: Per Batch wird das vorhin erstellte .VBS gestartet
Zeile 7: Per Batch wird geprüft, ob das angegebene .VBS (c:\outlook.vbs) existiert. Wenn ja, wird es gelöscht. Braucht kein then.
Der Fehler aus Deinem ersten Edit ist interessant...
Da Du schreibst, dass Du Dich mit Scripts nicht so auskennst, versuche ich es ein wenig zu Erklären:
Zeile 1: Per Batch wird geprüft, ob das angegebene .VBS (c:\outlook.vbs) existiert. Wenn ja, wird es gelöscht. Braucht kein then.
Zeile 2,3: Hier werden zwei Codezeilen VBS via Batch in eine VBS-Datei geschrieben (Der Aufruf von Outlook)
Zeile 5: Per Batch 60 Sekunden warten
Zeile 6: Per Batch wird das vorhin erstellte .VBS gestartet
Zeile 7: Per Batch wird geprüft, ob das angegebene .VBS (c:\outlook.vbs) existiert. Wenn ja, wird es gelöscht. Braucht kein then.
dein beispiel war doch vbs-code oder? weil die erweiterung der datei vbs ist.
Nein... Jedenfalls nicht alles.
Du musst mein Beispiel Kopieren und als .BAT/.CMD abspeichern.
Wenn Du dann den Batch startest, wird Temporär ein .VBS erstellt, ausgeführt und am Schluss wieder gelöscht.
Darum hab ich nie richtig kapiert, was Du mit WAIT im Sinn hattest...
WAIT ist kein DOS-Befehl, der mir geläufig wäre... DOS hat TIMEOUT und VBS hat SLEEP, also woher hast Du WAIT?
Kleine Frage:
Hast Du mein Script überhaupt angeschaut, oder einfach angenommen, dass es funktioniert?
Fällt Dir hier gar nichts auf?
Hast Du ein d:\? Ich schon...
Es würde sicher nicht Schaden, die Ausgabe auf einen Pfad zu legen, der Existiert und wo Du auch Berechtigt bist...
Wie Du Dein Problem löst, ist im Endeffekt eigentlich Wurscht. Aber ein wenig mitdenken ist doch nicht zuviel verlangt. Oder doch?
Hast Du mein Script überhaupt angeschaut, oder einfach angenommen, dass es funktioniert?
Fällt Dir hier gar nichts auf?
echo Set wshshell = CreateObject("Wscript.Shell") 1>>d:\outlook.vbs
Hast Du ein d:\? Ich schon...
Es würde sicher nicht Schaden, die Ausgabe auf einen Pfad zu legen, der Existiert und wo Du auch Berechtigt bist...
Wie Du Dein Problem löst, ist im Endeffekt eigentlich Wurscht. Aber ein wenig mitdenken ist doch nicht zuviel verlangt. Oder doch?
>WAIT 5
>START C:\Programme\PowerToy\Clock.exe
>EXIT
funktioniert nur mit Pfaden die keine
Freizeichen enthalten
ODER
Fehlermeldung wenn der pfad ein leerzeichen
enthält "... konnte nicht gefunden
werden"
bsp: Start C:\Programme\Movie
Maker\moviemk.exe
WAIT Variante2
>WAIT 5
>START
"C:\Programme\PowerToy\Clock.exe"
>EXIT
die exe wird als commandozeile
geöffnet
WAIT Variante 3
>WAIT 5
>"C:\Programme\PowerToy\Clock.exe"
>EXIT
funktioniert aber commando-fenster bleibt
offen
bei leerzeichen wird die exe als
commandozeilenfenster ausgeführt
bsp: "C:\Programme\Movie
Maker\moviemk.exe"
WAIT Variante 4
>WAIT 5
>C:\Programme\PowerToy\Clock.exe
>EXIT
funktioniert aber commando-fenster bleibt
offen
bei leerzeichen passiert nix
bsp: C:\Programme\Movie Maker\moviemk.exe
>START C:\Programme\PowerToy\Clock.exe
>EXIT
funktioniert nur mit Pfaden die keine
Freizeichen enthalten
ODER
Fehlermeldung wenn der pfad ein leerzeichen
enthält "... konnte nicht gefunden
werden"
bsp: Start C:\Programme\Movie
Maker\moviemk.exe
WAIT Variante2
>WAIT 5
>START
"C:\Programme\PowerToy\Clock.exe"
>EXIT
die exe wird als commandozeile
geöffnet
WAIT Variante 3
>WAIT 5
>"C:\Programme\PowerToy\Clock.exe"
>EXIT
funktioniert aber commando-fenster bleibt
offen
bei leerzeichen wird die exe als
commandozeilenfenster ausgeführt
bsp: "C:\Programme\Movie
Maker\moviemk.exe"
WAIT Variante 4
>WAIT 5
>C:\Programme\PowerToy\Clock.exe
>EXIT
funktioniert aber commando-fenster bleibt
offen
bei leerzeichen passiert nix
bsp: C:\Programme\Movie Maker\moviemk.exe
Nur so als Ergänzung:
Wenn du die Hilfe vom Start befehl liest (start /?) wirst du merken, dass der Befehl
Start "C:\Programme\Movie Maker\moviemk.exe"
nicht geht weil nach dem Start das erste in " ein Name ist der nur angezeigt wird. Daher wird das "C:\Programme\Movie Maker\moviemk.exe" als Name erkannt und nicht als Programm. Un das zu umgehen gibt es zwei Möglichkeiten:1. Etwas unschön aber funktioniert indem Du nur einen Teil des Prades in " setzt.
Start C:\Programme\"Movie Maker"\moviemk.exe
2. Etwas als Name angeben, das funktioniert immer:Start "Movie Maker wird gestartet..." "C:\Programme\Movie Maker\moviemk.exe"
oder alternativ eben nichts angeben:Start "" "C:\Programme\Movie Maker\moviemk.exe"
miniversumcmdow und WAIT sind seperate Programme,
welche am besten nach %systemroot%\system32
kopiert werden. Von WAIT gibt es mehrere
Versionen, (...)
welche am besten nach %systemroot%\system32
kopiert werden. Von WAIT gibt es mehrere
Versionen, (...)
Zur weiteren Verwirrung noch ein Tipp von mir.
Da WAIT kein Standardkommando zu sein scheint, gibt's noch ein zweckentfremdetes PING-Kommando, das immer funktionieren sollte:
ping 127.0.0.1 -n 42
(42 ist hier die ungefähre Wartezeit in Sekunden)
Grüße gypakk