Приложение, которое я хочу запустить, - MongoDB. Если бы я начал это нормально, это выглядит так:
Мне не нравится количество разрывов строк, и у меня много места на экране, поэтому я хотел бы использовать это пространство, чтобы избавиться от разрывов строк.
Я могу изменить размер окна консоли MODE
, поэтому я написал командный файл следующим образом:
@ECHO OFF
MODE con:cols=140 lines=70
%~dp0mongodb\bin\mongod --dbpath %~dp0data --rest
Все идет нормально. Когда я запускаю этот пакетный файл, я получаю большее окно, по желанию.
Но когда я теперь нажимаю Ctrl+ Cдля выхода из MongoDB, я получаю раздражающее приглашение:
Terminate batch job (Y/N)?
Что бесполезно, потому что команда, из которой я только что вышел, была последней командой в пакетном задании в любом случае, и независимо от того, что я отвечаю, результат один и тот же.
Итак, как я могу получить большее окно консоли для приложения, не имея этого запроса, когда я нажимаю Ctrl+ C?
источник
Насколько я понимаю вопрос, вы хотите, чтобы MongoDB имел заданный размер окна консоли и выходил при нажатии Ctrl+ C. Тогда ответ довольно прост: используйте ярлык, чтобы запустить его.
У меня нет
mongod
исполняемого файла, поэтому я хотел бы использоватьperl.exe
в качестве примера. Когда вы запускаете его из диалогового окна « Выполнить » ( Windows+ R), размер окна консоли будет стандартным 80 × 25 с размером буфера на 300 строк.mongod
(илиperl
в моем случае).mongod
.Теперь, когда вы нажмете этот ярлык, окно консоли будет иметь указанный размер. Когда вы нажимаете Ctrl+ C, приложение закрывается, и окно закрывается без каких-либо дополнительных запросов.
Вы также можете изменить макет окна после его запуска из диалогового окна « Выполнить ». Щелкните правой кнопкой мыши заголовок окна консоли и выберите « Свойства» . Перейдите на вкладку « Макет », настройте размер окна и нажмите « ОК», чтобы закрыть свойства и немедленно применить изменения. (Если окно было запущено из ярлыка, свойства ярлыка обновляются.)
В следующий раз, когда вы запустите то же приложение, размер окна консоли будет волшебным образом того же размера. (На этот раз я не проверял, но это работало.)
источник
mongod.exe
не является фиксированным. Это изменится в зависимости от развертывания приложения. Именно поэтому я стремился к решению через консоль напрямую. Когда я указываю относительный путь в полях назначения или рабочего каталога для ярлыка, он не принимает их :(start cmd /k
и передает дополнительный параметр или устанавливает переменную среды. Затем второй экземпляр изменяет размер окна консоли и запускаетсяmongod.exe
.Terminate batch job (Y/N)?
приглашения: \ Я на самом деле только что закончил реализацию приложения-оболочки, чтобы решить эту проблему для меня.Настройки макета консоли по умолчанию находятся здесь в реестре:
Вы можете изменить эти параметры, и они будут применяться ко ВСЕМ командным окнам, которые запускаются, независимо от пути. К сожалению, необработанные ценности не дружественны человеку.
Чтобы установить их так, как вы хотите, откройте обычное окно cmd, затем отредактируйте настройки по своему вкусу. Посмотрите в реестре по указанному выше пути, и вы должны увидеть вложенный ключ в разделе «Консоль» для cmd.exe. Экспортируйте этот ключ в файл, измените путь к указанному выше и импортируйте, или просто вручную скопируйте значения из одного в другое. Затем вы можете удалить запись cmd.exe. Теперь все открываемые командные окна будут использовать измененные значения по умолчанию.
Мне показалось удобным создать пару файлов записей реестра с моими стандартными настройками по умолчанию, чтобы я мог легко перенести их на новый сервер при первом включении RDP. Я сделал пресеты для двух размеров, которые я обычно использую.
Для 1024 x 768 (я использую это для серверов, к которым обычно обращаются через многосессионный инструмент RDP):
Для 1280 x 1024:
источник
Поместите
Start
команду перед вызовом mongodb. Я считаю, что это должно исправить.источник
start /b
его, окно консоли останется открытым после того, как я нажму Ctrl + C.Если вы готовы запустить пакетный файл вместе с несколькими крошечными вспомогательными программами, я разместил полное решение здесь:
Как пакетный файл может запустить программу и установить положение и размер окна?
Содержание как ниже. , , ,
Этот демонстрационный пакетный файл запустит программу командной строки и установит положение и размер своего окна консоли командной строки. Общая тема этого пакета такая же, как и в предыдущих двух решениях (на странице переполнения стека в ссылке выше), но были некоторые уникальные проблемы и обходные пути для этой работы - это окно командной строки, размещенное в CMD .EXE ", а не окно графического интерфейса, например" EXPLORER.EXE ".
Прочитайте все комментарии и описание в командном файле для получения дополнительной информации.
Используемые инструменты:
1. MonitorInfoView от Nir Sofer (41 КБ)
2. NirCmd от Nir Sofer (43 КБ)
3. GetPIDs от Daniel Scheibli (280 КБ)
4. upx.exe --- это программа командной строки, которую мы будем использовать для этой демонстрации; поместите его в тот же каталог, что и пакетный файл.
5. Пакетный файл - см. Ниже
Соберите все пять файлов в каталог. Это командный файл, готовый для запуска в любой системе Windows.
То, что собирается сделать этот демонстрационный пакет, помимо предоставления вам пользовательского окна консоли, это то, что он будет работать
upx.exe
с переключателями командной строки--best -v -o getpids-compressed.exe getpids.exe
, Мы собираемся сжать наш инструмент «GetPID» до 88 КБ ........ После запуска дважды щелкните строку заголовка этого окна консоли, чтобы увидеть интересное явление; это окно консоли ведет себя как графический интерфейс!источник