Iniciar o arquivo em lotes do Windows maximizado

7

Eu escrevi um arquivo em lote que planejo distribuir para algumas dezenas de máquinas. Verifica automaticamente o estado de funcionamento de vários dispositivos. Eu adicionei recentemente um "menu" no início do script, solicitando que o usuário selecione itens específicos para consulta de uma lista. A lista, no entanto, é muito longa para ser visualizada sem rolagem.

Em vez de refinar minha lista, o que posso adicionar ao lote para iniciar o shell do Windows maximizado? Eu tentei enganar e Right click the .bat -> Properties -> Change the "Run" state to "Maximized" , mas essa opção não existe (e francamente eu prefiro adicionar esse recurso dentro do próprio script).

As máquinas que estão executando o script estão executando o Windows 7

    
por root 18.12.2013 / 21:06

2 respostas

14

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âmetro max , precisamos executar essa linha.
  • start /MAX inicia o comando depois dele, de forma maximizada.
  • cmd /c execute cmd.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 primeiro max -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.

    
por 18.12.2013 / 21:08
0

Você pode maximizar o prompt de comando durante a execução, mas precisará de dois scripts adicionais: windowMode e getCmdPid.bat :

@echo off

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

some commands
    
por 09.03.2017 / 19:20