Пакетные файлы: как оставить окно консоли открытым



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




  1. "Мой Пакетный Файл" > 2. "Какой-То Другой Пакетный Файл"


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



cmd.exe /k "<SomePath><My Batch File>.bat" & pause


что я хочу сделать
Я хочу, чтобы окно консоли было открыто после завершения выполнения пакетного файла. Теперь он просто закрывается, пытался играть вокруг флагов cmd, нет результат.



Платформа: Windows7





обновление 1



изменена структура, простой пример, как это не работает также,
Только один пакетный файл, т. е. нет 2. "Какой-То Другой Пакетный Файл"
Единственный пакетный файл содержит что-то вроде этого



start /B /LOW /WAIT make package
cmd /K




обновление 2



тот же ярлык, который вызывается из проводника, не закрывает окно консоли.
но консоль окно закрывается, когда ярлык вызывается из закрепленного элемента на панели задач



есть идеи, как сохранить окно консоли открытым?

688   8  

8 ответов:

если это действительно все, что делает пакетный файл, удалите cmd /K и добавить PAUSE.

start /B /LOW /WAIT make package
PAUSE

затем просто укажите свой ярлык на"My Batch File.bat"...нет необходимости запускать его с CMD /K.

обновление

Ах, какая-то новая информация...ты пытаешься сделать это из закрепленного ярлыка на панели задач.

я нашел вот это добавление пакетных файлов на панель задач Windows 7, таких как Vista/XP Quick Launch, С соответствующей части под.

  1. во-первых, закрепите ярлык для CMD.EXE на панель задач, нажав кнопку Пуск, затем введите " cmd "в поле поиска, щелкните правой кнопкой мыши результат и выберите"Pin to Taskbar".
  2. щелкните правой кнопкой мыши ярлык на панели задач.
  3. вы увидите список, который включает в себя "Командная Строка" и "открепить эту программу от панели задач".
  4. щелкните правой кнопкой мыши значок CMD.EXE и выберите Properties.
  5. в поле для цели, идти до конца "%SystemRoot%\system32\cmd.exe" и типа " /C " и путь и имя пакетного файла.

для ваших целей, вы можете либо:

  1. использовать /C и поставить PAUSE в конце пакетного файла.

    или

  2. измените командную строку, чтобы использовать /K и удалить PAUSE из вашего пакетного файла.

здесь:

cmd.exe /k "<SomePath>\<My Batch File>.bat" & pause

посмотрите, что вы делаете:

  1. (cmd /K) Start новая экземпляр cmd.
  2. (& pause) Pause текущего экземпляр cmd.

как его решить? ну, используя правильный синтаксис, заключая аргумент для нового экземпляра CMD:

cmd.exe /k ""<SomePath>\<My Batch File>.bat" & pause"

Я только что написал последнюю строку как пауза Он отлично работал с обоими .летучая мышь и. УМК. Он будет отображать сообщение также как "нажмите любую клавишу, чтобы продолжить".

в последней строке пакетного файла, который вы хотите держать открытыми поставить

pause >nul

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

' & pause'

вы можете просто поставить pause команда в последней строке вашего пакетного файла:

@echo off
echo Hey, I'm just doing some work for you.
pause

даст вам что-то вроде этого в качестве вывода:

положить в конце он снова откроет вашу консоль

start cmd 

Я просто нажимаю enter и набираю Pause, и он отлично работает

Comments

    Ничего не найдено.