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,窗口将关闭(在正确关闭所包含的进程后)。
据我了解这个问题,您希望 MongoDB 具有指定大小的控制台窗口并在您按下Ctrl+时退出C。那么答案很简单:使用快捷方式启动它。
我没有mongod
可执行文件,所以我将perl.exe
用作示例。当您从运行对话框 ( Windows+ R)启动它时,控制台窗口的大小将是标准的 80×25,缓冲区大小为 300 行。
mongod
(或perl
在我的情况下)。mongod
。现在,当您单击此快捷方式时,控制台窗口将具有指定的大小。当您按Ctrl+ 时C,应用程序退出并关闭窗口,没有任何其他提示。
从“运行”对话框启动后,您还可以更改窗口的布局。右键单击控制台窗口的标题,然后单击“属性”。单击布局选项卡,调整窗口大小,然后单击确定关闭属性并立即应用更改。(如果窗口是从快捷方式启动的,则快捷方式的属性会更新。)
下次启动同一个应用程序时,控制台窗口的大小将神奇地相同。(这次我没有检查它,但它曾经工作过。)
您是否考虑过从 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 的横向可滚动缓冲区。
归档时间: |
|
查看次数: |
28308 次 |
最近记录: |