Batch-Satti
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Batch-Satti

Você não está conectado. Conecte-se ou registre-se

Task Scheduler com .bat Windows Server 2008 R2 SP1 x64

3 participantes

Ir para baixo  Mensagem [Página 1 de 1]

ffaulstich



Prezados,

Entrei hoje no forum e vi bastante assunto interessante, porém estou com uma grande dúvida e sem conseguir resolver um problema.

Eu tenho várias batch´s criadas em meu servidor e uso o agendamento de tarefas do windows para executar as batch´s mas acontece o seguinte cenário, ele executa mas não abre a tela do prompt como ocorre no meu servidor antigo que é 2003.

Ouvi falar que para isso acontecer tem que aplicar nas batch´s uma linha de comando que faça ele executar o cmd.

Procede essa informação? alguém já teve essa dificuldade?

Aguardo uma luz.

Grato.

lamerbk22

lamerbk22

Não sei com relação a qual seria exatamente essa linha de comando, mais pode ser:
Código:
cmd /c
"/C" Executa o comando especificado pela cadeia_de_caracteres e ‚ ENCERA.
Caso não de certo tente o:
Código:
cmd /k
"/K " Executa o comando especificado pela cadeia_de_caracteres mas permanece COM O PROMPT ABERTO.
OBS: Quando usar "/K" não se esqueça de por "EXIT" no final do por que com o /c o batch fecha sozinho mais com o /k ele fica aberto então e so por exit no fim.
Espero ter ajudado.
ABÇ.

ffaulstich



Tenho vários mas um de teste que criei foi um copy:

coloquei assim o script:

@echo on

cmd /k

copy c:\teste.txt c:\temp

#sem o exit para deixar aberto mesmo para ver se iria funcionar e não foi no agendamento, manualmente funciona mas pelo agendamento não vai.

lamerbk22

lamerbk22

Bom outra opção é jogar o arquivo na pasta inicialização.
Conheces? No windows 7 existi uma pasta assim, você por acaso não saberia da existência dela ai no seu OS?

ffaulstich



Conheço sim, porém esse script é somente de teste para tentar descobrir o porque não abre a tela do prompt quando executado pelo agendamento, e isso é necessário para acompanhamento. E como tenho mais de 50 scripts para tarefas diárias e horários diferentes não posso deixar na pasta inicializar o script.

gwy



Olá amigo, não sei se estou enganado mas tente o código abaixo:
Código:
@echo on
cmd /k "copy c:\teste.txt c:\temp"

Creio que não aparecia nada pois a linha estava quebrada.
Abraço.

lamerbk22

lamerbk22

Rapas DEMOROU MAIS ACHEI:
Foi mal eu entrei esses dias mais acabei nem respondendo nada.
Em primeiro lugar tenta a opção do guy beleza.
Vamos la, vamos usar o comando at, que faz agendamento de comandos no windows, e o mesmo que você ja tentou mais sem interface gráfica dessa vez quem sabe ne?
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link] : Esse é o link pra que você possa fazer sua própria interpretação e entender melhor.
Resposta do dos ao meu help:
O comando AT agenda a execução de comandos e programas em um computador,
de acordo com as datas e horas especificadas. O serviço de agendamento deve
estar sendo executado para que o comando AT possa ser usado.

AT [\\computador] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\\computador] hora [/INTERACTIVE]
[ /EVERY:data[,...] | /NEXT:data[,...]] "comando"

\\computador Especifica um computador remoto. Os comandos sÆo
agendados no computador local se este parƒm. for omitido.
id Número de identificação atribu¡do a um comando
agendado.
/DELETE Cancela um comando agendado. Se a identificação for
omitida, todos os comandos agendados no computador são
cancelados.
/YES Usado com o comando para cancelar todos os trabalhos
quando nenhuma confirmação adicional for necessária.
hora Especifica o horário em que o comando deve ser executado.
/INTERACTIVE Permite que o trabalho interaja com a  rea de trabalho
do usuário que estiver conectado quando o trabalho
estiver sendo executado.
/EVERY:data[,...] Executa o comando especificado em cada dia da semana
ou do mˆs especificado. Se a data for omitida, ser 
usada a data corrente.
/NEXT:data[,...] Executa o comando especificado na próxima ocorrência do
dia (por exemplo, na próxima quinta-feira). Se a data
for omitida, ser  usada a data corrente.
"comando" Comando do Windows NT ou do programa em lotes a ser
executado.
#Agora vamos aos exemplos:
Se for em rede local você não tem a necessidade de usar o "\\" que no caso é pra indicar o nome do server pra fazer o execução do comando pela net.
Código:

at A HORA DA EXECUÇÃO /INTERACTIVE (Se necessária a interação com o usuário) /every: 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 (dias Que o batch sera executado) comando
Agora um exemplo real:
Código:
at 14:45 /every 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 notepad.exe "%userprofile%\desktop\Satti.txt"
Aqui em todos os dias do mês as 14:45 o arquivo Satti.txt do desktop sera aberto pelo seu programa padrão o notepad.exe (caso não conheça o programa padrão do arquivo use comando start que faz a iniciação pelo programa padrão de forma automática, se for so um *.exe basta chamar o aplicativo diretamente pelo nome), basicamente e isso nos de a resposta.

Conteúdo patrocinado



Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos