Podczas konfigurowania zaplanowanego zadania w sekcji akcji próbuję uzyskać dostęp do zmiennej środowiskowej dla lokalizacji pliku wykonywalnego, który chcę uruchomić. Wynika to głównie z tego, że na jednym komputerze plik wykonywalny może znajdować się w C: na innym może to być D: Sprawdziłem, że jeśli użyję zakodowanej ścieżki, moje zaplanowane zadanie zostanie uruchomione, ale jeśli zmienię akcję tak, aby wskazywała "%MyAppPath%\MyApp.exe"
na zadanie nie zacznie odczuwać niepowodzenia uruchamiania. Sprawdziłem, czy zmienna środowiskowa jest skonfigurowana.
Czy możliwe jest odwołanie do zmiennej środowiskowej w części akcji (i katalogu roboczego) harmonogramu zadań - czy moja składnia jest nieprawidłowa?
Na marginesie, pomyślałem o wywołaniu pliku BAT i odwołaniu się do zmiennej środowiskowej, ale to nic nie rozwiązuje, ponieważ głównym problemem jest to, czy aplikacja (i plik nietoperza) znajduje się na C: lub D: napędy - w samym napędzie ścieżka jest taka sama.
AKTUALIZACJA : Okazuje się, że można ich używać przy ponownym uruchomieniu komputera, ale być może istnieje lepszy sposób
źródło
Myślałem, że możesz odwoływać się do zmiennych środowiskowych z Harmonogramu zadań, ale po wypróbowaniu nie wygląda to tak, jak możesz.
Wydaje się, że jedynym wyjątkiem jest
%PATH%
dodanieMyAppPath
wartości do%PATH%
kolekcji na każdym komputerze, a następnie po prostu wywołanieMyApp.exe
z harmonogramu zadań, gdzie maszyna będzie w stanie rozwiązać w pełni kwalifikowaną ścieżkę zgodnie z wymaganiami?źródło
%~d0
rozwinie się do litery dysku, na której znajduje się plik wsadowy. (%~dp0
dla katalogu dysk + itd. )źródło
Odpowiedź tsvayera nie zadziałała dla mnie na komputerze z systemem Windows 7, ale wskazała mi właściwy kierunek. Harmonogram zadań wydaje się być usługą na moim komputerze; nazywa się
Schedule
; wyświetlana nazwa to Harmonogram zadań .Oprócz zrestartowania go z MMC usług , można go zrestartować za pomocą następujących
wmic
poleceń uruchomionych z okna wiersza polecenia (z uprawnieniami administratora):Możesz oczywiście zrestartować usługę, używając
sc
:Na podstawie prób i błędów wydaje się, że wystarczy wyłączyć, a następnie ponownie włączyć pojedyncze zadanie, jeśli to wszystko, co musisz zmienić:
źródło
Rozwijając odpowiedź grawitacji, korzystam z dwuetapowego procesu. Pozwala mi to na użycie ścieżki w innych instrukcjach, gdy jest to potrzebne.
UWAGA:
pushd
zmienia zarówno dysk, jak i katalog. A jeśli chcesz być czysty,popd
kiedy skończysz.źródło