1

Я тестировал пакетный файл и ставил паузы, чтобы проверить, правильно ли работает скрипт.

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

2 ответа2

3

Что произойдет, если я изменю командный файл, когда он pause

Изменения, внесенные в пакетный файл после оператора pause , отражаются в результатах.

Изменения, внесенные в пакетный файл перед оператором pause , игнорируются, если они не меняют количество символов. Смотрите ответ от sgmoore по причине.

2

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

Но я бы настоятельно рекомендовал вам ничего не менять перед оператором pause.

Windows запоминает, в каком положении она находится, поэтому изменения, внесенные в пакетный файл перед оператором pause, могут странным образом повлиять на ваш пакетный файл и могут вызвать серьезные проблемы.

Например, если у вас есть тривиальный пакетный файл, который делает что-то вроде

@Rem 
@Echo "Hello"
pause
@Echo  Dir c:\windows

Когда пауза выполнена, Windows считает, что она находится на 27-м байте файла. Если вы удалите первую строку, то, поскольку вы удалили пять символов, все будет смещено, но при нажатии любой клавиши окна продолжатся с 27-го символа.

Поэтому вместо выдачи команды

 @Echo  Dir c:\windows 

это выдает

 Dir c:\windows

Теперь представьте, что произойдет, если ваша оригинальная партия сказала

@Echo Del c:\windows

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