How do I minimize the command prompt from my bat file

前端 未结 12 845
攒了一身酷
攒了一身酷 2020-12-02 14:15

I have this bat file and I want to minimize the cmd window when I run it:

@echo off
cd /d C:\\leads\\ssh 
call C:\\Ruby192\\bin\\setrbvars.bat
ruby C:\\leads         


        
12条回答
  •  星月不相逢
    2020-12-02 14:41

    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:

    1. IS_MINIMIZED is set to 1: set IS_MINIMIZED=1.
    2. Script starts a copy of itself using start command && start "" /min "%~dpnx0" %* where:

      1. "" - empty title for the window.
      2. /min - switch to run minimized.
      3. "%~dpnx0" - full path to your script.
      4. %* - passing through all your script's parameters.
    3. 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

提交回复
热议问题