How do I minimize the command prompt from my bat file

前端 未结 12 797
攒了一身酷
攒了一身酷 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:39

    One way to 'minimise' the cmd window is to reduce the size of the console using something like...

    echo DO NOT CLOSE THIS WINDOW
    MODE CON COLS=30 LINES=2
    

    You can reduce the COLS to about 18 and the LINES to 1 if you wish. The advantage is that it works under WinPE, 32-bit or 64-bit, and does not require any 3rd party utility.

    0 讨论(0)
  • 2020-12-02 14:40

    Use the start command, with the /min switch to run minimized. For example:

    start /min C:\Ruby192\bin\setrbvars.bat
    

    Since you've specified a batch file as the argument, the command processor is run, passing the /k switch. This means that the window will remain on screen after the command has finished. You can alter that behavior by explicitly running cmd.exe yourself and passing the appropriate switches if necessary.

    Alternatively, you can create a shortcut to the batch file (are PIF files still around), and then alter its properties so that it starts minimized.

    0 讨论(0)
  • 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

    0 讨论(0)
  • 2020-12-02 14:44

    The only way I know is by creating a Windows shortcut to the batch file and then changing its properties to run minimized by default.

    0 讨论(0)
  • 2020-12-02 14:49

    If you want to start the batch for Win-Run / autostart, I found I nice solution here https://www.computerhope.com/issues/ch000932.htm & https://superuser.com/questions/364799/how-to-run-the-command-prompt-minimized

    cmd.exe /c start /min myfile.bat ^& exit
    
    • the cmd.exe is needed as start is no windows command that can be executed outside a batch
    • /c = exit after the start is finished
    • the ^& exit part ensures that the window closes even if the batch does not end with exit

    However, the initial cmd is still not minimized.

    0 讨论(0)
  • 2020-12-02 14:52

    Yet another free 3rd party tool that is capable of minimizing the console window at any time (not only when starting the script) is Tcl with the TWAPI extension:

    echo package require twapi;twapi::minimize_window [twapi::get_console_window] | tclkitsh -
    

    here tclkitsh.exe is in the PATH and is one of the tclkit-cli-*-twapi-*.exe files downloadable from sourceforge.net/projects/twapi/files/Tcl binaries/Tclkits with TWAPI/. I prefer it to the much lighter min.exe mentioned in Bernard Chen's answer because I use TWAPI for countless other purposes already.

    0 讨论(0)
提交回复
热议问题