Answers:
您可以尝试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 max
将max
在%1
-variable中。如果不使用max
参数启动批处理,则需要执行此行。start /MAX
以最大化的形式启动命令。cmd /c
执行cmd.exe
并/c
意味着随后退出。%0 max
。这些%0
代表您自己的批处理文件名,这max
是它的第一个参数。这意味着我们需要跳过第一行if
,否则就会陷入循环:)& exit/b
:&
意味着与前一个命令同时执行下一个命令。这意味着我们执行,start /max your batchfile
同时退出当前批次。这也意味着我们不能使用以外的任何其他参数来调用此版本max
。如果您的批处理文件需要一个参数来启动,那么您将需要做更多的魔术(例如shift
在测试后添加%1)。
如果是这样,请告诉我们。
@echo off // if not "%1"=="max" start /MAX %0 max // <rest of the batch>>
。(未经测试,但您可以看到我要去的地方...)
echo "rest of batch"
我只是想作为一个占位符。在该if not
行之后,您可以包括正常批次。(我对其进行了编辑以使其更清晰)
您可以在运行期间最大化命令提示符,但需要两个附加脚本:windowMode和getCmdPid.bat:
@echo off
call getCmdPid
call windowMode -pid %errorlevel% -mode maximized
some commands