There is a quite interesting way to execute script minimized by making him restart itself minimised. Here is the code to put in the beginning of your script:
if not DEFINED IS_MINIMIZED set IS_MINIMIZED=1 && start "" /min "%~dpnx0" %* && exit
... script logic here ...
exit
How it works
When the script is being executed IS_MINIMIZED is not defined (if not DEFINED IS_MINIMIZED) so:
- IS_MINIMIZED is set to 1:
set IS_MINIMIZED=1. -
Script starts a copy of itself using start command
&& start "" /min "%~dpnx0" %*where:""– empty title for the window./min– switch to run minimized."%~dpnx0"– full path to your script.%*– passing through all your script’s parameters.
-
Then initial script finishes its work:
&& exit.
For the started copy of the script variable IS_MINIMIZED is set by the original script so it just skips the execution of the first line and goes directly to the script logic.
Remarks
- You have to reserve some variable name to use it as a flag.
- The script should be ended with
exit, otherwise the cmd window wouldn’t be closed after the script execution. -
If your script doesn’t accept arguments you could use argument as a flag instead of variable:
if "%1" == "" start "" /min "%~dpnx0" MY_FLAG && exit
or shorter
if "%1" == "" start "" /min "%~f0" MY_FLAG && exit