У меня есть два разных соединения для моего интернет-соединения. Первый использует с 7 утра до 10 вечера. Второй использует с 10 вечера до 7 утра следующего дня. И для каждого из соединений я создал пакетный файл для подключения к Интернету. С помощью команды "rasdial connectionA ......" внутри каждого файла отдельно. Теперь я хочу сделать еще один командный файл, который при запуске. Основываясь на системных часах, выполните один из этих файлов автоматически. Например, если это было 9 часов утра, с учетом того, что сейчас время с 7 часов утра до 10 часов вечера, запустите файл «А». пожалуйста, научите меня, что команда (ы) для него? Мой английский слабый, так что извините.

1 ответ1

0

Это должно работать для вас с 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. #>
}

Приятной особенностью PowerShell является то, что он по-прежнему сохраняет доступ к командам, которые вы обычно используете с CMD/batch. Таким образом, вы должны иметь возможность просто поместить свои rasdial команды вместо строк комментариев выше.

Если вы хотите запустить тест, чтобы убедиться, что операторы if работают правильно, вы можете установить время, используемое Get-Date с помощью параметра -Hour . Например, измените первую строку на $CurrentHour = (Get-Date -Hour 10).Hour чтобы проверить время в течение 10 часов утра.

К сожалению, PowerShell не получает много собственных сетевых команд, пока вы не обновите ОС до Windows 8 или Windows 8.1. Возможно, есть несколько способов сделать это, получив доступ к базовым объектам .NET Framework, но вам, вероятно, лучше просто придерживаться rasdial .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .