
25335
21.02.2006, aktualisiert am 23.02.2006
Infos über Skript für Shutdown und Start eines Programmes gesucht
Hallo zusammen,
ich habe folgendes Problem.
Mein Abteilungsleiter hat mir folgendes Skript vorgelegt und gesagt, dass ich nach der Ursache suchen soll, warum diese in einem geplanten Task nicht funktioniert.
FOR /F "tokens=1" %%A IN ('TLIST ^| FIND /I "ProTime_Chipkar"') DO kill -f %%A
ping 1.1.1.1 -n 60
copy \\ace-dt-00305\ProTime_Aussenstelle\ProTime_Aussenstelle.mde\\acehvsql\ProTime\ProTime_Aussenstelle.mde
ping1.1.1.1 -n 1200
start c:\programme\Compart\Chipkarte\ProTime_Chipkarte.exe
Ich weis, dass hier ein Zeiterfassungsprogramm geschlossen wird, danach 60 Sekunden verstreichen und danach eine Sicherung der Daten stattfindet. Danach ist nochmal eine Warteschleife, bei der ich aber nicht weiß was gemacht wird...
Zum Schluss, startet das Zeiterfassungsprogramm wieder.
Das Skript ist als Batchfile abgespeichert und soll über einen geplanten Task jeden morgen laufen...
Kann der Fehler hier liegen?
(TLIST ^| FIND /I "ProTime_Chipkar"') [eventuell ProTime_Chipkarte.exe?]
Da ich das Skript nicht auf dem Rechner testen kann bin ich ziemlich ahnungslos, was das ganze anbelangt, weil ich noch nie was mit Skripten zu tun hatte.
Gruß, Daniel
ich habe folgendes Problem.
Mein Abteilungsleiter hat mir folgendes Skript vorgelegt und gesagt, dass ich nach der Ursache suchen soll, warum diese in einem geplanten Task nicht funktioniert.
FOR /F "tokens=1" %%A IN ('TLIST ^| FIND /I "ProTime_Chipkar"') DO kill -f %%A
ping 1.1.1.1 -n 60
copy \\ace-dt-00305\ProTime_Aussenstelle\ProTime_Aussenstelle.mde\\acehvsql\ProTime\ProTime_Aussenstelle.mde
ping1.1.1.1 -n 1200
start c:\programme\Compart\Chipkarte\ProTime_Chipkarte.exe
Ich weis, dass hier ein Zeiterfassungsprogramm geschlossen wird, danach 60 Sekunden verstreichen und danach eine Sicherung der Daten stattfindet. Danach ist nochmal eine Warteschleife, bei der ich aber nicht weiß was gemacht wird...
Zum Schluss, startet das Zeiterfassungsprogramm wieder.
Das Skript ist als Batchfile abgespeichert und soll über einen geplanten Task jeden morgen laufen...
Kann der Fehler hier liegen?
(TLIST ^| FIND /I "ProTime_Chipkar"') [eventuell ProTime_Chipkarte.exe?]
Da ich das Skript nicht auf dem Rechner testen kann bin ich ziemlich ahnungslos, was das ganze anbelangt, weil ich noch nie was mit Skripten zu tun hatte.
Gruß, Daniel
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 26584
Url: https://administrator.de/forum/infos-ueber-skript-fuer-shutdown-und-start-eines-programmes-gesucht-26584.html
Ausgedruckt am: 19.05.2025 um 08:05 Uhr
4 Kommentare
Neuester Kommentar
Moin Xecutor,
so viele Ursachen kann es nicht haben.. wenn man/frau wüsste, ob es denn nicht läuft ode nicht mehr läuft, wäre die Diagnose einfacher..
Ich versuch mal kurz die paar Zeilen zu kommentieren:
FOR /F "tokens=1" %%A IN ('TLIST ^| FIND /I "ProTime_Chipkar"') DO kill -f %%A
:: in der ersten Zeile wird ein Utility namens TList.exe aufgerufen, also ein Progrämmchen,
:: das die aktiven Task bzw. Prozesse auflistet.
:. Wenn da mit Find.exe eine Zeile gefunden wird, in der "ProTime_Chipkar" steht,
:: dann wird die Kill.exe aufgerufen, die diesen Prozess beendet.
:: Ob da nun ein Prozess gefunden wird oder nicht und ob der beendet werden kann oder nicht,
::scheint dem Verfasser und dem Batch schnurzpiepegal zu sein..
:: der Batch geht unabhängig von Erfolg oder Fehelr weiter.
ping 1.1.1.1 -n 60
:: ...soll eine Wartepause sein.. na ja ein "ping localhost -n 60 >nul" hätte ja noch Charme..
copy \\ace-dt-00305\ProTime_Aussenstelle\ProTime_Aussenstelle.mde\\acehvsql\ProTime\ProTime_Aussenstelle.mde
::hier soll die datei ...."ProTime_Aussenstelle.mde" von A nach B kopiert werden..
::aber das Leerzeichen zwischen "Quelle" und "Ziel" (beginnend wieder mit "\\" fehlt.
ping1.1.1.1 -n 1200
:: siehe oben
start c:\programme\Compart\Chipkarte\ProTime_Chipkarte.exe
:: hier soll die ProTime_Chipkarte-Anwendung "wieder" gestartet werden..
:. unabhängig davon, ob sie vorher nicht, 1x oder 3x lief.
Ist also ein grottenschlechtes Batch-Beispiel.
Befehle werden zwar nacheinander ausgeführt, aber nur aneinandergereiht.. keine Programmlogik, die von Erfolg oder Fehlern gesteuert wird.
Etwas glattgezogen und wartbar (ohne Fehlerbehandlung):
Set "QuellServer=\\ace-dt-00305"
Set ZielServer=\\acehvsql"
Set "MDEPfadUndDatei=\ProTime_Aussenstelle\ProTime_Aussenstelle.mde"
Set "ProTimeExe=c:\programme\Compart\Chipkarte\ProTime_Chipkarte.exe"
FOR /F "tokens=1" %%A IN ('TLIST ^| FIND /I "ProTime_Chipkar"') DO kill -f %%A
ping localhost -n 60 >nul && REM Eine Minute warten auf Godot
copy %QuellServer%\%MDEPfadUndDatei% %QuellServer%\%MDEPfadUndDatei% >nul
IF Errorlevel 1 Echo %date% %time% Fehler beim Kopieren! Errorlevel: %errorlevel% >>logdatei.log
ping localhost -n 1200 && Rem Jetzt warten auf Feierabend... 20 Minuten lang
If Not Exist "%ProTimeExe%" echo %date% %time% "%ProTimeExe%" Nicht gefunden! >>logdatei.log
If Exist "%ProTimeExe%" Start "%ProTimeExe%"
HTH Biber
so viele Ursachen kann es nicht haben.. wenn man/frau wüsste, ob es denn nicht läuft ode nicht mehr läuft, wäre die Diagnose einfacher..
Ich versuch mal kurz die paar Zeilen zu kommentieren:
FOR /F "tokens=1" %%A IN ('TLIST ^| FIND /I "ProTime_Chipkar"') DO kill -f %%A
:: in der ersten Zeile wird ein Utility namens TList.exe aufgerufen, also ein Progrämmchen,
:: das die aktiven Task bzw. Prozesse auflistet.
:. Wenn da mit Find.exe eine Zeile gefunden wird, in der "ProTime_Chipkar" steht,
:: dann wird die Kill.exe aufgerufen, die diesen Prozess beendet.
:: Ob da nun ein Prozess gefunden wird oder nicht und ob der beendet werden kann oder nicht,
::scheint dem Verfasser und dem Batch schnurzpiepegal zu sein..
:: der Batch geht unabhängig von Erfolg oder Fehelr weiter.
ping 1.1.1.1 -n 60
:: ...soll eine Wartepause sein.. na ja ein "ping localhost -n 60 >nul" hätte ja noch Charme..
copy \\ace-dt-00305\ProTime_Aussenstelle\ProTime_Aussenstelle.mde\\acehvsql\ProTime\ProTime_Aussenstelle.mde
::hier soll die datei ...."ProTime_Aussenstelle.mde" von A nach B kopiert werden..
::aber das Leerzeichen zwischen "Quelle" und "Ziel" (beginnend wieder mit "\\" fehlt.
ping1.1.1.1 -n 1200
:: siehe oben
start c:\programme\Compart\Chipkarte\ProTime_Chipkarte.exe
:: hier soll die ProTime_Chipkarte-Anwendung "wieder" gestartet werden..
:. unabhängig davon, ob sie vorher nicht, 1x oder 3x lief.
Ist also ein grottenschlechtes Batch-Beispiel.
Befehle werden zwar nacheinander ausgeführt, aber nur aneinandergereiht.. keine Programmlogik, die von Erfolg oder Fehlern gesteuert wird.
Etwas glattgezogen und wartbar (ohne Fehlerbehandlung):
Set "QuellServer=\\ace-dt-00305"
Set ZielServer=\\acehvsql"
Set "MDEPfadUndDatei=\ProTime_Aussenstelle\ProTime_Aussenstelle.mde"
Set "ProTimeExe=c:\programme\Compart\Chipkarte\ProTime_Chipkarte.exe"
FOR /F "tokens=1" %%A IN ('TLIST ^| FIND /I "ProTime_Chipkar"') DO kill -f %%A
ping localhost -n 60 >nul && REM Eine Minute warten auf Godot
copy %QuellServer%\%MDEPfadUndDatei% %QuellServer%\%MDEPfadUndDatei% >nul
IF Errorlevel 1 Echo %date% %time% Fehler beim Kopieren! Errorlevel: %errorlevel% >>logdatei.log
ping localhost -n 1200 && Rem Jetzt warten auf Feierabend... 20 Minuten lang
If Not Exist "%ProTimeExe%" echo %date% %time% "%ProTimeExe%" Nicht gefunden! >>logdatei.log
If Exist "%ProTimeExe%" Start "%ProTimeExe%"
HTH Biber
Danke für die Rückmeldung, Xecutor,
dann wären meine zwei Bitten an Dich noch:
a) kennzeichne bitte den Beitrag als "gelöst" der Ordnung halber
b) schicke mal eine PN an einen der beiden Bereichs-Mods apewee oder tritter, dasss die den Beitrag nach "Batch & Shell" verschieben.. da ist er eigentlich besser aufgehoben.
Danke und schönen Tag
Biber
dann wären meine zwei Bitten an Dich noch:
a) kennzeichne bitte den Beitrag als "gelöst" der Ordnung halber
b) schicke mal eine PN an einen der beiden Bereichs-Mods apewee oder tritter, dasss die den Beitrag nach "Batch & Shell" verschieben.. da ist er eigentlich besser aufgehoben.
Danke und schönen Tag
Biber