我有这个 bat 文件,我想在运行它时最小化 cmd 窗口:

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

基本上我希望命令窗口立即最小化。关于如何做到这一点的任何想法?

最佳答案

有一种非常有趣的方式来执行最小化脚本,让他重新启动自身最小化。这是放在脚本开头的代码:

if not DEFINED IS_MINIMIZED set IS_MINIMIZED=1 && start "" /min "%~dpnx0" %* && exit
... script logic here ...
exit

这个怎么运作

当脚本正在执行时 IS_MINIMIZED 没有定义( if not DEFINED IS_MINIMIZED )所以:
  • IS_MINIMIZED 设置为 1 0x25181921213 1 0x251819212134 100 0x251819213413418
  • 脚本使用 start command set IS_MINIMIZED=1 开始自己的副本,其中:
  • && start "" /min "%~dpnx0" %* - 窗口的空标题。
  • "" - 切换到最小化运行。
  • /min - 脚本的完整路径。
  • "%~dpnx0" - 传递所有脚本的参数。
  • 然后初始脚本完成其工作: %*

  • 对于脚本变量的启动副本 && exit 由原始脚本设置,因此它只是跳过第一行的执行并直接进入脚本逻辑。

    评论
  • 您必须保留一些变量名才能将其用作标志。
  • 脚本应该以 IS_MINIMIZED 结束,否则脚本执行后cmd窗口不会关闭。
  • 如果您的脚本不接受参数,您可以使用参数作为标志而不是变量:
    exit或更短if "%1" == "" start "" /min "%~dpnx0" MY_FLAG && exit
  • 关于windows - 如何从我的 bat 文件中最小化命令提示符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9232308/

    10-16 09:45