Executar um comando em um arquivo em lotes no relógio do sistema

0

Eu tenho duas conexões diferentes para minha conexão com a internet. O primeiro usa das 7h às 22h. O segundo usa das 22h às 7h do dia seguinte. E para cada uma das conexões eu fiz um arquivo de lote para se conectar à Internet. Com o comando "conexão rasdialA ......" dentro de cada arquivo separadamente. Agora eu quero fazer outro arquivo de lote que quando executado. Com base no relógio do sistema, execute um desses arquivos automaticamente. Por exemplo, se fossem 9h, reconhecendo que agora é o horário entre 7h e 22h, execute um arquivo “A”. por favor me aprenda o que é um comando (s) para isso? Meu inglês é fraco, então sinto muito.

    
por Hamed 21.09.2014 / 23:33

1 resposta

0

Isso deve funcionar para você, com o PowerShell:

$CurrentHour = (Get-Date).Hour
if ($CurrentHour -ge 7 -and $CurrentHour -le 22)
{
    <# Insert commands for 7 AM to 10 PM connection here. #>
}
else
{
    <# Insert commands for 10 PM to 7 AM connection here. #>
}

O bom do PowerShell é que ele ainda mantém acesso aos comandos que você usaria normalmente com o CMD / batch. Portanto, você deve poder colocar seus comandos rasdial no lugar das linhas de comentário acima.

Se você deseja executar um teste para garantir que as instruções if estejam funcionando corretamente, você pode definir o tempo usado por Get-Date com o parâmetro -Hour . Por exemplo, altere a primeira linha para $CurrentHour = (Get-Date -Hour 10).Hour para testar os horários dentro das 10 horas da manhã.

Infelizmente, o PowerShell não recebe muitos comandos de rede nativos até que você atualize o sistema operacional para o Windows 8 ou o Windows 8.1. Pode haver algumas maneiras de fazer isso acessando os objetos subjacentes do .NET Framework, mas provavelmente é melhor ficar com rasdial por enquanto.

    
por 22.09.2014 / 00:35