Como executar um arquivo bat ou vbs no agendador de tarefas

0

Eu tenho um arquivo .bat que é uma linha longa e chama um script vb que abre especificamente um arquivo excel e executa algumas macros:

cscript priordays.vbs "C:\PATHANME\FILENAME.xlsm"

Quando eu o executo clicando duas vezes, ele funciona bem e com sucesso.

Quando executo o agendador de tarefas, ele diz que ele foi executado com êxito (código 0x0), mas o script não é executado. Eu tenho que definir para executar com as permissões mais altas, independentemente de o usuário estar logado ou não, wake machine, etc. Ainda nada.

Para aqueles que perguntam o que está no script vb, é:

Dim arts, objExcel

Set args = WScript.ARguments
Set objExcel = CreateObject("Excel.Application")

objExcel.Workbooks.Open args(0)
objExcel.visible = True

objExcel.Run "Macro1"
objExcel.Run "Macro2"
objExcel.Run "Macro3"

objWorkbook.Close

objExcel.Quit

Encontrei esse código em outro lugar neste site, junto com as instruções sobre como usar o arquivo .bat. Se houver uma maneira de executar tudo a partir do script e tentar iniciar o script a partir do agendador de tarefas, estou bem para fazer isso também.

    
por mbald23 27.02.2017 / 15:04

1 resposta

0

Como @Megamorf disse em seu comentário, é realmente difícil de fazer. Então, seria melhor usar uma macro de inicialização e um início programado para atingir sua meta.

Como funciona? Você cria uma macro de inicialização para o Excel, que será iniciada sempre que o Excel for iniciado.

Se você combinar isso com o início programado usando at da seguinte pergunta: Executando o arquivo bat usando o agendador do Windows

Para você, o comando AT seria e.x

at 20:30 /every:M,T,W,Th,F,S,Su "excel.exe"

Isso começará a se destacar todos os dias às 20h30. O Excel executará a macro de inicialização.

Como cancelar uma tarefa agendada

  1. Clique em Iniciar, aponte para Programas, aponte para Acessórios e clique em Prompt de Comando.
  2. No prompt de comando, digite a seguinte linha e pressione ENTER para exibir uma lista de serviços em execução no momento:

    net start

  3. Se o Agendador de Tarefas não for exibido na lista, digite o seguinte linha e, em seguida, pressione ENTER:

    net start "agendador de tarefas"

  4. No prompt de comando, digite a seguinte linha (use os parâmetros adequados à sua situação) e, em seguida, pressione ENTER:

    em \ id nome_do_computador / delete | / delete / yes

\\ computername é um computador que está em uma rede. Você não precisa preencher isso.

    
por 27.02.2017 / 16:16