я пытаюсь, чтобы мой пакет открыл другую программу на основе cmd, подождал некоторое время, затем ввел некоторые команды в программу на основе cmd, но не могу найти никакой документации о том, как это сделать. это командный файл, как он написан до сих пор:

:loop
start java -Xmx8192M -Xms8192M -jar minecraftforge-universal-1.6.2-9.10.1.871.jar
timeout /t 300
save-all
stop
timeout /t 120
goto loop

в основном, программа запускается через 300 секунд, ее предполагается сохранить, затем закрыть, затем подождать 120 секунд, а затем выполнить цикл. но пакет в том виде, в каком он есть сейчас, вводит команды «save-all» и "stop" в себя, а не в запущенную программу. Мне нужно использовать команду "Пуск", чтобы запустить его в отдельном экземпляре, иначе пакет не выполнит ни одну из следующих команд.

1 ответ1

0

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

:loop
(
  timeout /t 300 /nobreak ^>nul^&echo save-all^&echo stop^&(call )
)|java -Xmx8192M -Xms8192M -jar minecraftforge-universal-1.6.2-9.10.1.871.jar
timeout /t 120 /nobreak
goto loop

(call ) - это быстрый способ сделать неоперацию. Дополнительная команда необходима для предотвращения добавления завершающего пробела в конец команды stop .

Если это не работает, то вы определенно можете делать то, что вы хотите, используя бесплатное программное обеспечение AutoIT.

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