Ao configurar uma tarefa agendada, para a seção de ação, estou tentando acessar uma variável de ambiente para o local do executável que desejo executar. Isso ocorre principalmente porque em uma máquina o executável pode estar em C: em outro, em D: verifiquei que, se eu usar um caminho codificado, minha tarefa agendada será executada, mas se eu alterar a ação para apontar para "%MyAppPath%\MyApp.exe"
a tarefa não começará a sofrer uma falha no lançamento. Eu verifiquei que a variável de ambiente está configurada.
É possível dentro da parte da ação (e diretório de trabalho) do agendamento de tarefas fazer referência a uma variável de ambiente - minha sintaxe está errada.
Em uma nota lateral, pensei em chamar um arquivo BAT e referenciar a variável de ambiente lá, mas isso não resolve nada para mim, pois o principal problema é saber se o aplicativo (e o arquivo bat também) está em C: ou D: drives - dentro do próprio drive o caminho é o mesmo.
ATUALIZAÇÃO : Acontece que você pode usá-los com uma reinicialização da máquina, mas talvez haja uma maneira melhor
fonte
Eu pensei que você poderia fazer referência a variáveis de ambiente do Agendador de tarefas, mas, depois de tentar, não parece que você pode.
A única exceção parece ser
%PATH%
a seguinte: seria possível adicionar seuMyAppPath
valor à%PATH%
coleção em cada máquina e, em seguida, basta chamarMyApp.exe
do agendador de tarefas, onde a máquina poderá resolver o caminho completo conforme necessário?fonte
%~d0
será expandido para a letra da unidade onde o arquivo em lotes está localizado. (%~dp0
para o diretório drive + e assim por diante. )fonte
A resposta do tsvayer não funcionou muito bem para mim, em um computador executando o Windows 7, mas me indicou a direção certa. O Agendador de tarefas parece ser um serviço no meu computador; é o nome é
Schedule
; o nome para exibição é Agendador de tarefas .Além de reiniciá-lo no MMC de serviços , ele pode ser reiniciado com os seguintes
wmic
comandos executados em uma janela do prompt de comando (com privilégios de administrador):Obviamente, você também pode reiniciar o serviço usando
sc
:Com base na tentativa e erro, parece suficiente desabilitar e reativar uma única tarefa, se é tudo o que você precisa afetar:
fonte
Expandindo a resposta da grawity, uso um processo de duas etapas. Isso me permite usar o caminho em outras instruções quando necessário.
NOTA:
pushd
altera a unidade e o diretório. E se você queria estar limpo,popd
quando terminar.fonte