at

Aplica-se a: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2 e Windows Server 2012

Agenda comandos e programas a serem executados em um computador em uma data e hora determinadas. Você só pode usar o at quando o serviço Agendar estiver em execução. Usado sem parâmetros, at lista comandos agendados. Você deve ser um membro do grupo Administradores local para executar este comando.

Sintaxe

at [\computername] [[id] [/delete] | /delete [/yes]]
at [\computername] <time> [/interactive] [/every:date[,...] | /next:date[,...]] <command>

Parâmetros

Parâmetro Descrição
\<computername\> Especifica um computador remoto. Se você omitir esse parâmetro, o comando at agenda os comandos e programas no computador local.
<id> Especifica o número de identificação atribuído a um comando agendado.
/delete Cancela um comando agendado. Caso omita a ID, todos os comandos agendados no computador serão cancelados.
/sim Responde sim a todas as consultas do sistema ao excluir eventos agendados.
<time> Especifica a hora em que queira executar o comando. tempo é expresso como Horas:Minutos em notação de 24 horas (ou seja, 00:00 (meia-noite) a 23:59).
Interativo Permite que o comando interaja com a área de trabalho do usuário que está conectado no momento em que o Comando é executado.
a cada: Executa o comando em cada dia ou dias especificados da semana ou mês (por exemplo, todas as quintas-feiras ou o terceiro dia de cada mês).
<date> Especifica a data em que queira executar o comando. Especifique um ou mais dias da semana (ou seja, digite M,T,W,Th,F,S,Su) ou um ou mais dias do mês (ou seja, digite 1 a 31). Separe várias entradas de data com vírgulas. Caso omita a data, o comando at usará o dia atual do mês.
próximo: Executa o comando na próxima ocorrência do dia (por exemplo, na próxima quinta-feira).
<command> Especifica o comando do Windows, o programa (ou seja, o arquivo .exe ou .com) ou o programa em lotes (ou seja, .bat ou arquivo .cmd) o qual queira executar. Quando o comando exigir um caminho como argumento, use o caminho absoluto (ou seja, todo o caminho começando com a letra da unidade). Se o comando estiver em um computador remoto, especifique a notação UNC (Convenção Universal de Nomenclatura) para o servidor e o nome do compartilhamento, em vez de uma letra de unidade remota.
/? Exibe a ajuda no prompt de comando.

Comentários

  • Esse comando não carrega automaticamente cmd.exe antes de executar comandos. Caso não esteja executando um arquivo executável (.exe), será necessário carregar explicitamente o cmd.exe no início do comando da seguinte maneira:

    cmd /c dir > c:\test.out
    
  • Caso esteja usando esse comando sem opções de linha de comando, as tarefas agendadas aparecerão em uma tabela formatada de forma semelhante à seguinte:

    Status  ID   Day        time        Command Line
    OK      1    Each F     4:30 PM     net send group leads status due
    OK      2    Each M     12:00 AM    chkstor > check.file
    OK      3    Each F     11:59 PM    backup2.bat
    
  • Se incluir um número de identificação (ID) com esse comando, somente as informações de uma única entrada aparecerão em um formato semelhante ao seguinte:

    Task ID: 1
    Status: OK
    Schedule: Each  F
    Time of Day: 4:30 PM
    Command: net send group leads status due
    
  • Depois de agendar um comando, especialmente um comando que tenha opções de linha de comando, verifique se a sintaxe do comando está correta digitando at sem nenhuma opção de linha de comando. Se as informações na coluna Linha de Comando estiverem erradas, exclua o comando e digite-o novamente. Se ainda estiver incorreto, digite novamente o comando usando menos opções de linha de comando.

  • Comandos agendados com o at em execução como processos em segundo plano. A saída não é exibida na tela do computador. Para redirecionar a saída para um arquivo, use o símbolo > de redirecionamento. Caso redirecione a saída para um arquivo, precisará usar o símbolo ^ de escape antes do símbolo de redirecionamento, seja usando o at na linha de comando ou em um arquivo em lote. Por exemplo, para redirecionar a saída para output.txt, digite:

    at 14:45 c:\test.bat ^>c:\output.txt
    

    O diretório atual para o comando em execução é a pasta systemroot.

  • Caso altere a hora do sistema depois de agendar um comando para ser executado, sincronize o at no agendador com a hora revisada do sistema digitando at sem opções de linha de comando.

  • Os comandos agendados são armazenados no registro. Como resultado, você não perderá tarefas agendadas se reiniciar o serviço agendamento.

  • Não use uma unidade redirecionada para trabalhos agendados que acessam a rede. O serviço Agendar pode não conseguir acessar a unidade redirecionada ou a unidade redirecionada pode não estar presente se um usuário diferente estiver conectado no momento em que a tarefa agendada for executada. Em vez disso, use caminhos UNC para trabalhos agendados. Por exemplo:

    at 1:00pm my_backup \\server\share
    

    Não use a seguinte sintaxe, em que x: é uma conexão feita pelo usuário:

    at 1:00pm my_backup x:
    

    Caso agende um comando at que usa uma letra da unidade para se conectar a um diretório compartilhado, inclua um comando at para desconectar a unidade quando terminar de usar a unidade. Se a unidade não estiver desconectada, a letra da unidade atribuída não estará disponível no prompt de comando.

  • Por padrão, as tarefas agendadas usando esse comando serão interrompidas após 72 horas. Modifique o registro para alterar esse valor padrão.

    Para modificar o registro

    Cuidado

    A edição incorreta do Registro pode causar danos graves ao sistema. Antes de alterar o Registro, faça backup de todos os dados importantes do computador.

    1. Inicie o editor do Registro (regedit.exe).

    2. Localize e selecione na seguinte chave no Registro: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Schedule

    3. No menu Editar, selecione Adicionar Valor e adicione os seguintes valores de registro:

      • Nome do valor. atTaskMaxHours

      • Tipo de dados. reg_DWOrd

      • Radix. Decimal

      • Dados de valor: 0. Um valor de 0 no campo Dados de Valor indica que não há limite e não é interrompido. Valores de 1 a 99 indicam o número de horas.

  • Use a pasta Tarefas Agendadas para exibir ou modificar as configurações de uma tarefa que foi criada usando este comando. Ao agendar uma tarefa usando esse comando, a tarefa é listada na pasta Tarefas Agendadas, com um nome como o seguinte:at3478. No entanto, caso modifique uma tarefa por meio da pasta Tarefas Agendadas, ela será atualizada para uma tarefa agendada normal. A tarefa não está mais visível para o comando at e a configuração na conta não se aplica mais a ela. Insira explicitamente uma conta de usuário e uma senha para a tarefa.

Exemplos

Para exibir uma lista de comandos agendados no servidor de Marketing, digite:

at \\marketing

Para saber mais sobre um comando com o número de identificação 3 no servidor Corp, digite:

at \\corp 3

Para agendar um comando de compartilhamento de rede a ser executado no servidor Corp às 8h e redirecionar a listagem para o servidor de Manutenção, no diretório compartilhado Relatórios e no arquivo Corp.txt, digite:

at \\corp 08:00 cmd /c net share reports=d:\marketing\reports >> \\maintenance\reports\corp.txt

Para fazer backup do disco rígido do servidor de Marketing em uma unidade de fita à meia-noite a cada cinco dias, crie um programa em lote chamado Archive.cmd, que contém os comandos de backup e agende o programa em lote para ser executado, digite:

at \\marketing 00:00 /every:5,10,15,20,25,30 archive

Para cancelar todos os comandos agendados no servidor atual, desmarque as informações de agendamento do at da seguinte maneira:

at /delete

Para executar um comando que não seja um arquivo executável (.exe), preceda o comando com cmd /c para carregar cmd.exe da seguinte maneira:

cmd /c dir > c:\test.out