При настройке запланированного задания для раздела действий я пытаюсь получить доступ к переменной среды для расположения исполняемого файла, который я хочу запустить. Это происходит главным образом потому, что на одном компьютере исполняемый файл может находиться в C: на другом он может быть в D: я убедился, что если я использую жестко закодированный путь, запускается мое запланированное задание, но если я изменяю действие, чтобы указать "%MyAppPath%\MyApp.exe"
на задание не начнет терпеть неудачу запуска. Я проверил, что переменная окружения установлена.
Возможно ли даже в части действия (и рабочей директории) расписания задач ссылаться на переменную среды - мой синтаксис неверен.
Кстати, я подумал о том, чтобы вызвать BAT-файл и сослаться на переменную окружения, но это ничего не решает для меня, поскольку основная проблема заключается в том, чтобы узнать, находится ли приложение (и файл bat) на C: или D: диски - внутри самого диска путь тот же.
ОБНОВЛЕНИЕ : Оказывается, вы можете использовать их с перезагрузкой компьютера, но, возможно, есть лучший способ
источник
Я думал, что вы можете ссылаться на переменные окружения из планировщика задач, но только что попробовал, это не похоже на то, что вы можете.
Единственное исключение, по-видимому
%PATH%
, состоит в том, можно ли добавить своеMyAppPath
значение в%PATH%
коллекцию на каждом компьютере, а затем просто позвонитьMyApp.exe
из планировщика задач, где машина сможет разрешить полный путь по мере необходимости?источник
%~d0
расширится до буквы диска, на котором расположен командный файл. (%~dp0
для диска + каталог и т. д. )источник
Ответ tsvayer не совсем работал для меня, на компьютере под управлением Windows 7, но он указал мне в правильном направлении. Планировщик заданий, кажется, служба на моем компьютере; это имя
Schedule
; отображаемое имя - планировщик заданий .Помимо перезапуска его из MMC служб , его можно перезапустить с помощью следующих
wmic
команд, запускаемых из окна командной строки (с правами администратора):Конечно, вы также можете перезапустить сервис, используя
sc
:Основываясь на методе проб и ошибок, кажется достаточным отключить, а затем снова включить одну задачу, если это все, на что вам нужно повлиять:
источник
Развивая ответ Гравити, я использую двухэтапный процесс. Это позволяет мне использовать путь в других операторах, когда это необходимо.
ПРИМЕЧАНИЕ:
pushd
изменяет как диск, так и каталог. И если вы хотите быть чистым,popd
когда вы закончите.источник