You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows批处理中call命令如何实现start /max的窗口最大化效果?

解决批处理中最大化终端运行程序且不自动关闭的问题

方案1:改进start /max命令,让窗口执行后停留

你之前用start /max时窗口自动关闭,是因为默认执行完程序后,启动的cmd窗口就会退出。可以给start搭配cmd /k参数,让窗口在执行完程序后保持打开:

start /max cmd /k "path\to\your\executable.exe"
  • /max:确保启动的cmd窗口直接最大化
  • cmd /k:让cmd执行指定命令后保持窗口打开,方便你查看程序输出或执行结果

如果希望程序执行完后,用户按任意键再关闭窗口,可以换成cmd /c结合pause

start /max cmd /c "path\to\your\executable.exe & pause"
  • cmd /c:原本执行命令后会关闭窗口,但加上& pause后,会在程序结束后暂停,等待用户输入才关闭

方案2:让当前批处理窗口全屏后用call执行程序

call命令本身是在当前窗口执行程序,它没有自带的窗口最大化参数。要实现当前窗口全屏,我们可以借助VBScript来控制窗口状态,然后再用call执行程序:

@echo off
:: 生成临时VBS脚本,让当前CMD窗口全屏
echo Set objShell = CreateObject("shell.application") > %temp%\maximize.vbs
echo objShell.Windows.Item(0).FullScreen = True >> %temp%\maximize.vbs
:: 执行VBS脚本实现全屏
cscript //nologo %temp%\maximize.vbs
:: 删除临时脚本
del %temp%\maximize.vbs

:: 用call执行你的可执行文件
call path\to\your\executable.exe

:: 可选:如果程序执行完后想保持窗口打开,添加pause
pause

这个方法会把当前批处理所在的cmd窗口直接设为全屏,然后在这个窗口里执行程序,执行完后窗口不会自动关闭(除非你没加pause且批处理运行结束)。

方案3:灵活调整窗口大小(替代mode命令)

如果你觉得固定数值的mode cols=200 lines=300不够适配不同屏幕,可以用动态获取屏幕分辨率的方式调整窗口尺寸(虽不是真正全屏,但能最大化利用屏幕空间):

@echo off
:: 获取屏幕宽度和高度
for /f "tokens=2 delims=:" %%a in ('wmic desktopmonitor get screenwidth /value ^| find "ScreenWidth"') do set "width=%%a"
for /f "tokens=2 delims=:" %%a in ('wmic desktopmonitor get screenheight /value ^| find "ScreenHeight"') do set "height=%%a"

:: 换算窗口的列数和行数(可根据字体大小微调比例)
set /a cols=%width%/8
set /a lines=%height%/16
mode con cols=%cols% lines=%lines%

:: 执行程序
call path\to\your\executable.exe
pause

内容的提问来源于stack exchange,提问作者goodvibration

火山引擎 最新活动