Batch - minimize window while running a loop command (not start minimized)

11,625

Solution 1

Use PowerShell's invocation options, executing no command or script.

@echo off & setlocal

echo Hello!
powershell -window minimized -command ""
timeout /t 100
powershell -window normal -command ""

FWIW, -window hidden is also available if you wish.

Solution 2

You can also minimize all windows by using below code with powershell.

$shell = New-Object -ComObject "Shell.Application"
$shell.minimizeall()

Check: https://techibee.com/powershell/powershell-minimize-all-windows/1017

Solution 3

You can minimize the command prompt on during the run but you'll need two additional scripts: windowMode and getCmdPid.bat:

@echo off
echo Hello!
call getCmdPid >nul
call windowMode -pid %errorlevel% -mode minimized

timeout /t 100
call getCmdPid >nul
call windowMode -pid %errorlevel% -mode normal
Share:
11,625
Rakha
Author by

Rakha

Powershell enthusiast, love everything that makes life easier.

Updated on June 16, 2022

Comments

  • Rakha
    Rakha almost 2 years

    I'm wondering if there is a way to minimize a batch window after it runs a certain command. I already know start /min and tricks to START the window minimized but what about while it's running a loop or timeout?

    Let's say:

    echo Hello!
    timeout /t 100
    :COMMAND TO MINIMIZE WINDOW WHILE TIMEOUT IS RUNNING
    

    Right now i'm calling an autoit script in the bat file to hide the window while the command is running with :

    WinSetState($application_name, "", @SW_HIDE) 
    

    but i'm looking for a pure batch/powershell/vbs solution that can be coded directly in the .bat file.

    Thank you for your time!