Batch - minimize window while running a loop command (not start minimized)
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
Rakha
Powershell enthusiast, love everything that makes life easier.
Updated on June 16, 2022Comments
-
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!