Пакетні файли: як залишити вікно консолі відкритим


105

У мене є два пакетні файли, один з них виконує інший, тобто

  1. "Мій пакетний файл"> 2. "Деякі інші пакетні файли"

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

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

Що я хочу зробити, я хочу, щоб вікно консолі було відкрито після завершення виконання пакетного файлу. Тепер він просто закривається, намагався зіграти навколо прапорців cmd, безрезультатно.

Платформа: Windows7


ОНОВЛЕННЯ 1

Модифікована структура, простий приклад, подібний до цього, також не працює, лише один пакетний файл, тобто немає 2. "Деякі інші пакетні файли" Єдиний пакетний файл містить smth, як це

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

ОНОВЛЕННЯ 2

Той самий ярлик, який викликається у Провідника, не закриває вікно консолі. Але вікно консолі закривається, коли викликається ярлик із закріпленого елемента на панелі завдань

Будь-які ідеї, як зберегти вікно консолі відкритим?


Я припускаю, що ви хочете, My Batch Fileщоб це трималося?
Марк Б

Відповіді:


126

Якщо це справді все, тим самим працює пакетний файл, видаліть cmd /Kі додайте PAUSE.

start /B /LOW /WAIT make package
PAUSE

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

ОНОВЛЕННЯ

Ах, якась нова інформація ... ви намагаєтеся зробити це із закріпленого ярлика на панелі завдань.

Я виявив це, додаючи пакетні файли до панелі завдань Windows 7, як швидкий запуск Vista / XP , з відповідною частиною нижче.

  1. Спочатку закріпіть ярлик CMD.EXEна панелі завдань, натиснувши кнопку запуску, потім введіть "cmd" у вікні пошуку, клацніть правою кнопкою миші результат та виберіть "Прив’язати до панелі завдань".
  2. Клацніть ярлик на панелі завдань правою кнопкою миші.
  3. Ви побачите список, який включає в себе " Командний рядок " та " Розв’язати цю програму на панелі завдань ".
  4. Клацніть правою кнопкою миші піктограму CMD.EXEі виберіть Properties.
  5. У полі Target перейдіть до кінця "%SystemRoot%\system32\cmd.exe"та введіть " /C "шлях та назву пакетного файлу.

Для своїх цілей ви можете:

  1. Скористайтеся /Cі поставте а PAUSEв кінці вашого пакетного файлу.

    АБО

  2. Змініть командний рядок, щоб використовувати /Kта видалити його PAUSEіз пакетного файлу.

Я вже це зробив, в основному моє запитання полягає не в тому, як викликати anohter batch file ...
deimus

Потім нам потрібно переглянути вміст обох пакетних файлів.
афорія

Перегляньте питання про udpated
deimus

Це ж питання, замінити CMD / K не працює. Чому вікно консолі не закривається, якщо ярлик викликається у Провідника?
deimus

13

Тут:

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

Погляньте, що ви робите:

  1. (cmd / K) Запустіть НОВИЙ екземпляр cmd.
  2. (& пауза) Призупиніть CURRENT cmd екземпляр.

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

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

6

Я тільки що написав останній рядок, коли пауза добре працювала з обома .bat та .cmd. Повідомлення відображатиметься також як "Натисніть будь-яку клавішу для продовження".


Це правильна відповідь! Повинні бути голосовані вище.
Патрік Гіллерт

5

В останньому рядку пакетного файлу, який ви хочете тримати відкритим, поставте a

pause >nul


Здається, що тоді закривається рано, можливо, в сценарії помилка. Спробуйте відкрити cmd-рядок і запустіть його звідти, тоді ви зможете побачити, чи є помилки.
Балі C

3

Щоб залишити вікно консолі відкритим, вам потрібно лише додати останній командний рядок у пакетному файлі:

' & pause'

2

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

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

Дасть вам щось подібне як вихід:

Гей, я просто роблю якусь роботу для тебе.

Натисніть будь-яку кнопку, щоб продовжити ...

Примітка: Використання @echo запобігає виведенню команди перед друком виводу.



-1

Поставте в кінці, він знову відкриє вашу консоль

start cmd 

Це не вирішує проблему, користувач хоче тримати вікно відкритим, а не відкривати старе.
Адам

-5

Я просто натискаю клавішу Enter і введіть "Пауза", і це працює добре

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.