spyeer
Goto Top

ODER Verknüpfung für batch file

Hallo zusammen,

ich bin neu in meinem Unternehmen und muss ein Problem lösen. Ich habe bereits im Forum gesucht, aber leider nichts passendes gefunden.

Das Programm soll:
- manuelles (durch User Eingabe) Starten eines Dienstes
- manuelles (durch User Eingabe) Stoppen eines Dienstes
- wird KEIN Manuelles Stoppen bestätigt, soll das Programm innerhalb einer bestimmten Zeit den Dienst automatisch stoppen


hier nun mein Anfang:

@echo off
:logon

echo Aktion start/stop:

echo manuelles Starten:
set /p Aktion=start:
IF %Aktion% == start net start Messenger
echo.
echo.
echo Dienst gestartet
echo.

echo manuelles Stoppen:
set /p Aktion=stop:
IF %Aktion% == stop net stop Messenger

echo auto Stoppen:
sleep 5
net stop Messenger
echo.
echo.
echo Dienst gestoppt
echo.

pause


Meine Überlegung ist eine ODER Verknüpfung für stoppen und autom. stoppen hinzuzufügen. Vielleicht hat jemand von euch eine bessere Idee.

Danke im Voraus

Siegmar

Content-ID: 117438

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

Ausgedruckt am: 25.11.2024 um 10:11 Uhr

77559
77559 04.06.2009 um 10:42:36 Uhr
Goto Top
Hallo Siegmar,

willkommen im Forum.

Ich nehme mal an, das dies eine Übungsaufgabe für dich ist.
Dein Code ist besser lesbar wenn du die Formatierungshilfe beachtest und Code Tags benutzt.

Wenn die erste Eingabe nicht start war, kannst du eigentlich abbrechen.
Die Abfrage ist Case sensitiv füge dem IF besser ein /i zu.
Wenn die Batchdatei in der zweiten Abfrage wartet, hast du keine Möglichkeit mehr etwas Zeitgesteuertes zu tun, das muss vorher passieren.
Du kannst mit
start "" %comspec% /C (Sleep 5 & net stop messenger)
den Stop Befehl vorher absetzen.

Gruß
LotPings
Spyeer
Spyeer 04.06.2009 um 12:09:14 Uhr
Goto Top
Hi LotPings,

ist nicht ganz eine Ü-aufgabe.
Kurze history zum Programm:
In meiner Firma ist ein VNC Server auf einem Client installiert, der soll/darf nur wenn ein Mitarbeiter eine Eingabe macht den VNC starten/stoppen. Falls der Mitarbeiter vergißt ein stop zu setzen muß das Programm automatisch den VNC anhalten (nur Dienst anhalten nicht das Programm beenden).

Bin ein bißchen durcheinander wegen dieser Zeile:
##start "" %comspec% /C (Sleep 5 & net stop messenger)##
wo sollte diese Zeile stehen. Ich habe verstanden dass dieser Befehl zuerst ausgeführt werden soll, aber bei mir fürht er zu einem:
## System error 1060 has occured ##
Wie müßte also das Programm deiner Meinung aussehen?

Gruß Siegmar
77559
77559 04.06.2009 um 12:58:42 Uhr
Goto Top
Zitat von @Spyeer:
Wie müßte also das Programm deiner Meinung aussehen?

Habe hier kein sleep, versuch mal
start /min "" %comspec% /C "ping -n 5 localhost & net stop messenger&pause"
Die Pause ist nur zur Demo.

Gruß
LotPings
Spyeer
Spyeer 04.06.2009 um 13:35:23 Uhr
Goto Top
Super hat geklappt, habe deine Zeile etwas abgeändert funtz genial.

nur verstehe ich dies

##start /min "" %comspec%##

nicht.

was macht min?? und comspec??

Danke LotPings
78632
78632 04.06.2009 um 13:46:40 Uhr
Goto Top
Was start macht, bekommst du mit help start oder start /? in der Konsole raus. Comspec ist eine Umgebungsvariable und gibt den Pfad zum Kommandointerpreter an.
Wenn du SET eingibst, wird dir der Inhalt aller Umgebungsvariablen angezeigt, mit SET C bekommst du nur die angezeigt, die mit "C" beginnen.

Und zukünftig packe bitte deine Code-Schnipsel in entsprechende Tags, damit sie übersichtlicher werden, siehe > Formatierungshilfe.
Das kannst du übrigens mit "bearbeiten" in deinem Beitrag auch jetzt noch. face-wink
Spyeer
Spyeer 04.06.2009 um 14:13:47 Uhr
Goto Top
hoffe es sieht jetzt besser aus. face-wink
78632
78632 04.06.2009 um 14:17:13 Uhr
Goto Top
Jein. Es fällt zwar eher auf, aber du solltest die Zeilen in Code-Tags packen, wie es
wird.