Você pode tentar start /MAX yourscript.bat
para iniciar seu script em um cmd maximizado (até o Windows 7)
Editar (por Rik):
Eu criei um pequeno exemplo que mostra como você pode fazer tudo em um arquivo em lote. (sem um lançador separado):
@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
Haverá um ligeiro tremeluzir do arquivo em lote original (que será encerrado imediatamente) antes de iniciar a versão maximizada.
Explicação simples:
Se o lote não for chamado com o parâmetro max
, chamaremos a si mesmo novamente ( %0
), desta vez maximizado com a ajuda de start /max
e com o parâmetro max
e dessa forma a segunda vez que o chamará, irá pular a instrução if e continuar com seus comandos.
Divisão:
-
if not "%1" == "max"
executa o próximo comando somente se%1
não for "max".%1
significa o primeiro parâmetro dado ao arquivo em lote. Portanto,my_batch.bat max
terámax
na variável%1
. Se não iniciarmos o lote com o parâmetromax
, precisamos executar essa linha. -
start /MAX
inicia o comando depois dele, de forma maximizada. -
cmd /c
executecmd.exe
e/c
significa sair depois. -
%código%. O
%0 max
significa seu próprio nome de arquivo em lote e aqui%0
é seu primeiro parâmetro. Isso significa que precisamos pular esse primeiromax
-line ou então seremos pegos em um loop:) -
if
: O& exit/b
significa executar o próximo comando simultâneo ao anterior. Isso significa que executamos o&
e, enquanto isso, saímos do lote atual.
Isso também significa que não podemos chamar esta versão com nenhum outro parâmetro além de start /max your batchfile
. Se seus arquivos em lote precisarem de um parâmetro para iniciar, você precisará fazer um pouco mais de mágica (como max
ing o% 1 após o teste).
Se for esse o caso, informe-nos.