Я использую Windows-7. Я хочу создать пакетный файл Windows, который работает следующим образом:

  1. Запустите exe с указанными аргументами. Ждите полного исполнения этого exe. (Этот EXE-файл, по сути, записывает видеопоток онлайн и должен записывать его в течение 1 часа 5 минут)
  2. Однако, если exe завершает работу (останавливает запись и завершает выполнение) раньше установленного периода времени (1 час 5 минут), запустите тот же exe с другим аргументом для оставшейся продолжительности. Убейте выполнение EXE, когда общий период времени (включая первую настройку EXE в Шаге 1) достигнет 1 часа 5 минут.
  3. Продолжайте выполнять exe с другим аргументом, пока совокупная продолжительность не достигнет 1 часа 5 минут.
  4. Завершите выполнение EXE и выйдите из выполнения пакетного файла, когда пакетный файл будет запущен в течение 1 часа 5 минут.

Примечание: exe принимает два аргумента: адрес входного потока и имя выходного файла.Единственный аргумент, который изменяется при каждом запуске вышеуказанного EXE-файла, - это имя файла, которое изменяется с "FileName" в первом запуске на "FileName2", когда первый запуск завершается до 1 часа 5 минут. И имя файла должно быть увеличено до Filename2, Filename3 и так далее, пока совокупное время выполнения этого пакетного файла не достигнет 1 часа 5 минут. Для реального примера посмотрите эту команду:

"C:\Windows\System32\rtmpdump.exe" -i rtmpt://154.500.69.6/live -o "C:\Users\user\Desktop\Filename.extension"

Упомянутая выше команда предназначена для запуска в первый раз. В последующих запусках (которые необходимы только в том случае, если это первое выполнение завершается до достижения цели в 1 час 5 минут), необходимо изменить только имя файла на Filename2.extension, как показано в приведенной ниже команде:

"C:\Windows\System32\rtmpdump.exe" -i rtmpt://154.500.69.6/live -o "C:\Users\user\Desktop\Filename2.extension"

И эту последовательность нужно продолжать до тех пор, пока совокупный прогон этого пакетного файла не достигнет 1 часа 5 минут.

1 ответ1

1

Пакет не может сделать это напрямую. Все, что обычно делает Batch - это запуск внешних программ. Существует некоторая возможность перехода / перехода / цикла, и можно использовать переменные, хотя использование переменных является болезненным.

Итак, поскольку большинство из того, что люди делают с Batch, это запускать внешние программы, ваша цель не будет состоять в том, чтобы действительно хорошо изучить Batch. Ваша цель будет найти программу, которая делает то, что вы хотите сделать.

Запуск программы с параметрами командной строки выполним. TASKLIST может помочь определить, работает ли программа или WMIC. Однако проверка времени может быть не самой простой вещью.

Другой вариант - использовать Windows Scripting Host (WSH), который позволяет запускать JScript (по сути, JavaScript) или VBScript. Это делается с помощью программы CScript (или программы WScript). Этот подход, вероятно, позволит вам взглянуть на время, хотя на детали более уместно отвечает StackOverflow (программирование), а не SuperUser (общие вычисления).

(Как отмечалось в другом месте, PowerShell также может быть жизнеспособной альтернативой, которая может быть проще, чем Batch.)

Вместо того, чтобы проверять, длилась ли запись в течение 65 минут, вы можете проверить ERRORLEVEL (также известный как код ошибки, код выхода или код возврата) программы. Многие программы используют это как способ легко сообщить, был ли процесс успешным или неудачным. Точный способ сделать это будет зависеть от того, какой язык программирования вы используете.

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