最大化启动 Windows 批处理文件

最大化启动 Windows 批处理文件

我编写了一个批处理文件,计划分发给几十台机器。它会自动检查几台设备的工作状态。我最近在脚本的开头添加了一个“菜单”,提示用户从列表中选择要查询的特定项目。但是,如果不滚动列表,列表就太长了。

除了完善我的清单,我还能做什么添加到批次如何最大化启动 Windows shell?我尝试使用 和Right click the .bat -> Properties -> Change the "Run" state to "Maximized",但此选项不存在(坦率地说,我宁愿在脚本本身内添加此功能)。

运行该脚本的计算机运行的是 Windows 7

答案1

您可以尝试start /MAX yourscript.bat在最大化的 cmd 中启动脚本(最高可达 Windows 7)

编辑(作者:Rik):

我创建了一个小示例,展示了如何在一个批处理文件中完成所有操作
(无需单独的启动器):

@echo off
if not "%1" == "max" start /MAX cmd /c %0 max & exit/b

:: here comes the rest of your batch-file
echo "test"

pause

在启动最大化版本之前,原始批处理文件将会轻微闪烁(将立即退出)。


简单解释:
如果批处理未使用参数调用,max我们将再次调用自身(%0),这次借助最大化start /max,并且使用参数max这样,当第二次调用时,它将跳过 if 语句并继续执行您的命令。

分解:

  • if not "%1" == "max"%1仅当不是“max”时才执行下一个命令。%1代表给批处理文件的第一个参数。因此my_batch.bat maxmax在变量中%1。如果我们没有使用参数启动批处理,max我们需要执行此行。
  • start /MAX以最大化形式启动其后的命令。
  • cmd /c执行cmd.exe/c然后表示退出。
  • %0 max%0代表您自己的批处理文件名,这max是它的第一个参数。这意味着我们需要跳过第一if行,否则我们会陷入循环 :)
  • & exit/b&表示在执行上一条命令的同时执行下一条命令。这意味着我们执行了start /max your batchfile,同时退出当前批处理。

这也意味着我们不能调用此版本除了 之外,没有其他任何参数max。如果您的批处理文件需要参数来启动,那么您将需要做一些更神奇的事情(例如shift在测试后输入 %1)。
如果是这种情况,请告诉我们。

答案2

您可以在运行期间最大化命令提示符,但您需要两个额外的脚本:窗口模式获取命令进程号

@echo off

call getCmdPid
call windowMode -pid %errorlevel% -mode maximized

some commands

答案3

您可以尝试 mode.com,但它只能全屏显示,而不会定位窗口:

@echo off
mode 1000

然后输入批处理文件的代码。

答案4

这非常有用,再进行一次调整......

为了使命令或批处理文件的窗口从最小化状态变为恢复状态而不是最大化状态,即将焦点放在窗口上以便它显示在屏幕上,我稍微修改了命令...

如果不是“%1”==“max”,则启动cmd / c%0 max&exit/b

斯纳法鲁

相关内容