Como interromper um arquivo em lote em execução, executar um comando em seu ambiente e continuar?

7

Estou ciente de que posso interromper um arquivo de lote em execução com o comando Crtl-C e continuar a execução.

No entanto, é possível executar um comando no ambiente cmd do arquivo de lote enquanto o lote é pausado?

Por exemplo, talvez eu queira pausar um lote em execução, alterar algumas variáveis que ele definiu anteriormente e continuar a execução.

    
por vedran 02.09.2012 / 17:41

2 respostas

1

Adicione linhas no lote com modificações (ou seja, defina um novo valor para a variável) após a pausa e continue o lote

    
por 03.09.2012 / 03:01
3

Este código permitirá executar comandos arbitrários a partir do contexto do lote: Coloque um arquivo em lote e brinque com ele.

@echo off

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

Para terminar de executar os comandos, basta pressionar Enter

Para usá-lo no seu lote, basta inserir uma linha com a chamada acima:

do stuff 
do more stuff

call interrupt_me.bat

do even more stuff

Se você quer saber por que há um call %cmd% em vez de %cmd% direto - ele permite expandir as variáveis passadas para que comandos como echo %comspec% funcionem corretamente.

    
por 02.09.2012 / 21:10

Tags