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