Пакетные файлы: как оставить окно консоли открытым
У меня есть два командных файла, один из них выполняет другой, т.е.
- "Мой пакетный файл" > 2. "Some Other Batch File"
Я создал ярлык первого командного файла и отредактировал его свойства, чтобы вызвать его следующим образом.
cmd.exe /k "<SomePath>\<My Batch File>.bat" & pause
Что я хочу сделать
Я хочу, чтобы окно консоли было открыто после завершения командного файла. Теперь он просто закрывается, пытается играть вокруг флагов cmd, никакого результата.
Платформа: Windows7
ОБНОВЛЕНИЕ 1
Изменена структура, простой пример вроде этого не работает,
Только один пакетный файл, то есть нет 2. "Some Other Batch File"
Единственный командный файл содержит smth, подобный этому
start /B /LOW /WAIT make package
cmd /K
ОБНОВЛЕНИЕ 2
Тот же ярлык, который вызывается из проводника, не закрывает окно консоли.
Но консольное окно закрывается, когда ярлык вызывается из закрепленного элемента на панели задач
Любые идеи о том, как открыть окно консоли?
Ответы
Ответ 1
Если это действительно весь пакетный файл, удалите cmd /K
и добавьте PAUSE
.
start /B /LOW /WAIT make package
PAUSE
Затем просто укажите свой ярлык на "My Batch File.bat"
... нет необходимости запускать его с помощью cmd /K
.
UPDATE
А, какая-то новая информация... вы пытаетесь сделать это из закрепленного ярлыка на панели задач.
Я нашел это, Добавление пакетных файлов на панель задач Windows 7, например, Vista Vista/XP Quick Launch, с соответствующей частью ниже.
- Сначала выделите ярлык для
CMD.EXE
на панели задач, нажав кнопку "Пуск", затем введите "cmd" в поле поиска, щелкните правой кнопкой мыши результат и выберите "Pin to Taskbar". - Щелкните правой кнопкой мыши ярлык на панели задач.
- Вы увидите список, включающий "Командная строка" и "Отменить эту программу с панели задач".
- Щелкните правой кнопкой мыши значок
CMD.EXE
и выберите Properties
. - В поле "Цель" перейдите в конец
"%SystemRoot%\system32\cmd.exe"
и введите " /C "
, а путь и имя командного файла.
В ваших целях вы можете:
Ответ 2
Здесь:
cmd.exe /k "<SomePath>\<My Batch File>.bat" & pause
Посмотрите, что вы делаете:
- (cmd/K) Запустите новый экземпляр cmd.
- (& pause) Пауза CURRENT cmd.
Как его решить? ну, используя правильный синтаксис, включающий аргумент для нового экземпляра CMD:
cmd.exe /k ""<SomePath>\<My Batch File>.bat" & pause"
Ответ 3
Я только что написал последнюю строку как Пауза, она отлично работала как с .bat, так и с .cmd.
Он отобразит сообщение также как "Нажмите любую клавишу, чтобы продолжить".
Ответ 4
В последней строке командного файла, который вы хотите сохранить, введите
pause >nul
Ответ 5
Чтобы оставить окно консоли открытым, вам нужно добавить только последнюю командную строку в пакетном файле:
' & pause'
Ответ 6
Вы можете просто поместить pause
команду в последнюю строку вашего командного файла:
@echo off
echo Hey, I'm just doing some work for you.
pause
Вы получите что-то вроде этого в качестве вывода:
Эй, я просто делаю для вас какую-то работу.
Нажмите любую клавишу, чтобы продолжить...
Примечание. Использование @echo предотвращает вывод команды перед печатью вывода.
Ответ 7
положить в конец, он снова откроет консоль.
start cmd
Ответ 8
Я просто нажимаю Enter и нажимаю Pause и отлично работает