如何打开具有给定窗口大小的控制台应用程序?

Der*_*ler 18 windows command-line batch-file

我要启动的应用程序是 MongoDB。如果我正常启动它,它看起来像这样:

在此处输入图片说明

我不喜欢换行符的数量,而且我有很多屏幕空间,所以我想利用所说的空间来摆脱换行符。

我可以用 改变控制台窗口的大小MODE,所以我写了一个这样的批处理文件:

@ECHO OFF
MODE con:cols=140 lines=70
%~dp0mongodb\bin\mongod --dbpath %~dp0data --rest
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好。当我启动这个批处理文件时,我会根据需要得到一个更大的窗口。

但是当我现在按Ctrl+C退出 MongoDB 时,我收到了烦人的提示:

Terminate batch job (Y/N)?
Run Code Online (Sandbox Code Playgroud)

这是没用的,因为我刚刚退出的命令无论如何都是批处理作业中的最后一个命令,无论我回答什么,结果都是一样的。

那么,当我点击Ctrl+时,如何在没有提示的情况下为应用程序获得更大的控制台窗口C

Der*_*ler 12

我今天花了几个小时实现了一个小的C#应用程序,它可以包装另一个控制台应用程序并调整控制台主机的窗口大小。

console-wrapper易于使用。它只需要几个命令行参数:

Usage: console-wrapper.exe [OPTIONS]

Options:

      --subject=VALUE        The application that should be started by the
                               console wrapper.
      --width=VALUE          The desired width of the console window.
      --height=VALUE         The desired height of the console window.
  -h, -?, --help             Shows this help message
Run Code Online (Sandbox Code Playgroud)

--width--height用于设置生成的控制台窗口的大小。--subject可以选择性使用,如果省略,则其余参数作为命令(带参数)启动。

所以我现在在我们的启动脚本中使用的最后一个调用是:

START "MongoDB" database\console-wrapper.exe --width=140 --height=70 %~dp0database\mongodb\bin\mongod.exe --dbpath %~dp0database\data --rest

生成的窗口将具有请求的大小,并且在点击Ctrl+ 时C,窗口将关闭(在正确关闭所包含的进程后)。


Ale*_*nov 6

据我了解这个问题,您希望 MongoDB 具有指定大小的控制台窗口并在您按下Ctrl+时退出C。那么答案很简单:使用快捷方式启动它。

我没有mongod可执行文件,所以我将perl.exe用作示例。当您从运行对话框 ( Windows+ R)启动它时,控制台窗口的大小将是标准的 80×25,缓冲区大小为 300 行。

  1. 创建一个快捷方式mongod(或perl在我的情况下)。
  2. 右键单击快捷方式,然后单击属性
    1. 快捷方式的选项卡目标字段中添加参数mongod
    2. Start in字段控制启动程序的初始当前目录。默认情况下,它将是 .exe 所在的目录。
  3. 单击布局选项卡。
    1. 窗口大小更改为 140×70。
      快捷方式属性,布局选项卡
    2. 您可以增加身高屏幕缓冲区大小为1000以上才能够达到滚动到旧的消息。
    3. 如果清除Let system position window,则可以指定控制台窗口在屏幕上的位置。
  4. 单击确定关闭快捷方式属性。

现在,当您单击此快捷方式时,控制台窗口将具有指定的大小。当您按Ctrl+ 时C,应用程序退出并关闭窗口,没有任何其他提示。


“运行”对话框启动后,您还可以更改窗口的布局。右键单击控制台窗口的标题,然后单击“属性”。单击布局选项卡,调整窗口大小,然后单击确定关闭属性并立即应用更改。(如果窗口是从快捷方式启动的,则快捷方式的属性会更新。)

下次启动同一个应用程序时,控制台窗口的大小将神奇地相同。(这次我没有检查它,但它曾经工作过。)


Sco*_*ain 6

您是否考虑过从 powershell 脚本运行它?Powershell 能够调整它自己的窗口大小

$h = Get-Host
$buf = $h.UI.RawUI.BufferSize
$buf.Width = 300
$h.ui.rawui.BufferSize = $buf
$win = $h.UI.RawUI.WindowSize
$win.Width = 150
$h.ui.rawui.WindowSize = $win
#Command to start mongodb here.
Run Code Online (Sandbox Code Playgroud)

这将创建一个大小为 150 的窗口,但也有一个 300 的横向可滚动缓冲区。