Ter o Agendador de Tarefas executando um programa a partir do local do programa

1

Eu escrevi um script .cmd que eu gostaria de exibir todos os dias às 7:30 da manhã. Agora, se eu executar a tarefa manualmente, ela poderá executar todos os comandos que eu coloco lá (alguns dos quais são scripts auxiliares .cmd), porque o programa é iniciado a partir do local do script pai. Ao testar para ver como o Agendador de Tarefas do Windows executa scripts, a variável de diretório atual aparece como system32 (onde o cmd.exe está localizado), portanto, quando meu script tenta encontrar algum dos scripts auxiliares, ele falha porque não está localizado no system32.

Eu entendo que no começo do meu script pai eu posso simplesmente colocar:

cd PathToParentScript

Mas eu gostaria de evitar isso, já que planejo dar esse script para outros colegas e quero manter todas as minhas variáveis de configuração em um único lugar (ou seja, um dos meus scripts auxiliares).

É possível que o Agendador de Tarefas inicie o script a partir do local desse script, em oposição a onde o cmd.exe está localizado? Se sim, como eu faria isso?

Eu tenho o Windows 10.

    
por mystbinder 13.09.2017 / 18:48

2 respostas

1

Configure seu script para alternar para o local atual do script real, adicionando o seguinte comando no começo:

CD /d %~dp0

Que se expandirá para:

CD /d drive:path_of script

Observação: O parâmetro /D permite que o CD mude para a unidade do script se for diferente da unidade atual.

A sintaxe %~dp0 é uma modificação da variável %0 (que é o nome do arquivo de script) pelo modificador ~dp , em que d é a unidade e p é o caminho.

    
por 13.09.2017 / 18:58
0

A opção onde você define a ação também deve ter uma caixa chamada "Iniciar em (opcional)" Defina isso na pasta em que você deseja que seu script seja executado.

    
por 13.09.2017 / 21:14