Beim Einrichten einer geplanten Aufgabe versuche ich, für den Aktionsabschnitt auf eine Umgebungsvariable für den Speicherort der ausführbaren Datei zuzugreifen, die ich ausführen möchte. Dies liegt hauptsächlich daran, dass sich die ausführbare Datei auf einem Computer in C befinden könnte: auf einem anderen Computer in D: Ich habe überprüft, ob meine geplante Aufgabe ausgeführt wird, wenn ich einen fest codierten Pfad verwende, aber wenn ich die Aktion ändere, um auf "%MyAppPath%\MyApp.exe"
die Aufgabe zu verweisen wird keinen Startfehler erleiden. Ich habe überprüft, dass die Umgebungsvariable eingerichtet ist.
Ist es überhaupt möglich, im Aktions- (und Arbeitsverzeichnis-) Teil des Aufgabenplans auf eine Umgebungsvariable zu verweisen - ist meine Syntax falsch?
Nebenbei bemerkt, ich habe darüber nachgedacht, eine BAT-Datei aufzurufen und die Umgebungsvariable dort zu referenzieren, aber das löst für mich nichts, da das Hauptproblem tatsächlich bekannt ist, ob sich die Anwendung (und auch die bat-Datei) auf C befindet: oder D: drives - innerhalb des Laufwerks ist der Pfad derselbe.
UPDATE : Es hat sich herausgestellt, dass Sie sie für einen Neustart des Computers verwenden können, aber vielleicht gibt es einen besseren Weg
quelle
Ich dachte, Sie könnten auf Umgebungsvariablen aus dem Taskplaner verweisen, aber nachdem Sie es gerade versucht haben, sieht es nicht so aus, als könnten Sie es.
Die einzige Ausnahme scheint zu sein:
%PATH%
Wäre es möglich, IhrenMyAppPath
Wert der%PATH%
Sammlung auf jedem Computer hinzuzufügen und dann einfachMyApp.exe
über den Taskplaner aufzurufen , wo der Computer den vollständig qualifizierten Pfad nach Bedarf auflösen kann?quelle
%~d0
wird auf den Laufwerksbuchstaben der Batchdatei erweitert. (%~dp0
für Laufwerk + Verzeichnis usw. )quelle
Die Antwort von tsvayer hat auf einem Computer mit Windows 7 nicht ganz funktioniert, aber sie hat mich in die richtige Richtung gelenkt . Der Taskplaner scheint ein Dienst auf meinem Computer zu sein. es heißt
Schedule
; Der Anzeigename lautet Task Scheduler .Neben dem Neustart über die Dienste- MMC können die folgenden
wmic
Befehle in einem Eingabeaufforderungsfenster ausgeführt werden (mit Administratorrechten):Sie können den Dienst natürlich auch neu starten, indem Sie Folgendes verwenden
sc
:Basierend auf Versuchen und Irrtümern scheint es ausreichend zu sein, eine einzelne Aufgabe zu deaktivieren und dann wieder zu aktivieren, wenn dies alles ist, was Sie bewirken müssen:
quelle
Um auf die Antwort von Grawity einzugehen, benutze ich einen zweistufigen Prozess. Dadurch kann ich den Pfad bei Bedarf in anderen Anweisungen verwenden.
HINWEIS:
pushd
Ändert sowohl das Laufwerk als auch das Verzeichnis. Und wenn Sie sauber sein wollen,popd
wenn Sie fertig sind.quelle