7

Я знаю, что могу прервать запущенный пакетный файл с Crtl-C, а затем продолжить выполнение.

Однако возможно ли выполнить команду в среде cmd пакетного файла, когда пакет приостановлен?

Например, мне может понадобиться приостановить запущенный пакет, изменить некоторые переменные, в которых он был установлен ранее, а затем продолжить выполнение.

2 ответа2

3

Этот код позволит выполнять произвольные команды изнутри пакетного контекста: поместите его в пакетный файл и поиграйте с ним.

@echo off

:loop 
  set cmd=
  set /p "cmd=Please give command, empty line to finish "
  if defined cmd (
    call %cmd%
    goto loop
  )

Чтобы завершить выполнение команд, просто нажмите Enter

Чтобы использовать его в своем пакете, просто вставьте строку с вызовом выше:

do stuff 
do more stuff

call interrupt_me.bat

do even more stuff

Если вы удивляетесь, почему вместо call %cmd% используется %cmd% - это позволяет расширить передаваемые переменные, чтобы команды вроде echo %comspec% работали правильно.

1

Добавьте строки в пакет с изменениями (т.е. установите новое значение для переменной) после паузы и продолжите пакет

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