启动Windows批处理文件最大化


8

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

除了优化列表之外,我还可以添加什么以启动最大化的Windows Shell?我试图作弊和Right click the .bat -> Properties -> Change the "Run" state to "Maximized",但是这个选项不存在(坦率地说,我宁愿在脚本本身中添加此功能)。

运行脚本的计算机正在运行Windows 7

Answers:


14

您可以尝试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-variable中。如果不使用max参数启动批处理,则需要执行此行。
  • start /MAX 以最大化的形式启动命令。
  • cmd /c执行cmd.exe/c意味着随后退出。
  • %0 max。这些%0代表您自己的批处理文件名,这max是它的第一个参数。这意味着我们需要跳过第一行if,否则就会陷入循环:)
  • & exit/b&意味着与前一个命令同时执行下一个命令。这意味着我们执行,start /max your batchfile同时退出当前批次。

这也意味着我们不能使用以外的任何其他参数来调用此版本max。如果您的批处理文件需要一个参数来启动,那么您将需要做更多的魔术(例如shift在测试后添加%1)。
如果是这样,请告诉我们。


这将起作用,但是需要创建一个“启动”批处理。我正在尝试将其减少到只运行一个文件的整个操作-如果可能的话。+1

1
但是,@ root您可以创建一个批处理,该批处理在批处理文件的开头以一些巧妙的单行代码启动。有点像@echo off // if not "%1"=="max" start /MAX %0 max // <rest of the batch>>。(未经测试,但您可以看到我要去的地方...)
Rik

@ user2196728我可以自由地为您的答案添加示例,而无需单独的启动程序批处理。(希望没事)
Rik

@Rik:就您所写的内容而言,没有pb对我来说是一件好事:)而且听起来不错:)
user2196728 2013年

@ user2196728不,echo "rest of batch"我只是想作为一个占位符。在该if not行之后,您可以包括正常批次。(我对其进行了编辑以使其更清晰)
Rik 2013年

0

您可以在运行期间最大化命令提示符,但需要两个附加脚本:windowModegetCmdPid.bat

@echo off

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

some commands

-1

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

@echo off
mode 1000

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


这似乎不是全屏显示窗口,而只是使其变得很大,同时保留了左上角的位置。
斯科特

-1

这是非常有用的,需要进一步调整...

为了使命令或批处理文件的窗口从最小化状态变为还原状态而不是最大化状态,即将焦点放在窗口上,以便在屏幕上显示,我对命令进行了少许修改。

如果不是“%1” ==“ max”开始cmd / c%0 max&退出/ b

Snafaru


看起来这似乎是对另一个问题的答案。此外,为什么我们还要担心从最小化窗口开始的批处理文件?
斯科特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.