Mat*_*iby 42 windows command-line cmd batch-file command-prompt
我有这个bat文件,我想在运行它时最小化cmd窗口:
@echo off
cd /d C:\leads\ssh
call C:\Ruby192\bin\setrbvars.bat
ruby C:\leads\ssh\put_leads.rb
Run Code Online (Sandbox Code Playgroud)
基本上我希望命令窗口立即最小化.关于如何做到这一点的任何想法?
izz*_*kil 66
有一种非常有趣的方法可以通过使脚本重新启动最小化来最小化执行脚本.以下是放在脚本开头的代码:
if not DEFINED IS_MINIMIZED set IS_MINIMIZED=1 && start "" /min "%~dpnx0" %* && exit
... script logic here ...
exit
Run Code Online (Sandbox Code Playgroud)
正在执行脚本时IS_MINIMIZED没有定义(if not DEFINED IS_MINIMIZED)所以:
set IS_MINIMIZED=1.脚本使用start命令 启动自身的副本,&& start "" /min "%~dpnx0" %*其中:
"" - 窗口的空标题./min - 切换到最小化运行."%~dpnx0" - 脚本的完整路径.%* - 传递所有脚本的参数.然后初始脚本完成它的工作:&& exit.
对于脚本变量的启动副本IS_MINIMIZED由原始脚本设置,因此它只是跳过第一行的执行并直接转到脚本逻辑.
exit,否则在脚本执行后不会关闭cmd窗口.如果您的脚本不接受参数,您可以使用参数作为标志而不是变量:
if "%1" == "" start "" /min "%~dpnx0" MY_FLAG && exit
或更短
if "%1" == "" start "" /min "%~f0" MY_FLAG && exit
Cod*_*ray 40
使用该start命令,使/min交换机最小化运行.例如:
start /min C:\Ruby192\bin\setrbvars.bat
Run Code Online (Sandbox Code Playgroud)
由于您已指定批处理文件作为参数,因此运行命令处理器,并传递/k交换机.这意味着命令完成后窗口将保留在屏幕上.您可以通过显式运行cmd.exe自己并在必要时传递适当的开关来改变该行为.
或者,您可以创建批处理文件的快捷方式(仍然是PIF文件),然后更改其属性以使其最小化.
小智 10
使用 PowerShell,您可以在不打开新实例的情况下最小化同一文件。
powershell -window minimized -command ""
Run Code Online (Sandbox Code Playgroud)
另外-window hidden和-window normal可完全隐藏或恢复。
来源:https : //stackoverflow.com/a/45061676/1178975
如果您想为 Win-Run / 自动启动启动批处理,我在这里找到了不错的解决方案https://www.computerhope.com/issues/ch000932.htm & https://superuser.com/questions/364799/how-最小化运行命令提示
cmd.exe /c start /min myfile.bat ^& exit
Run Code Online (Sandbox Code Playgroud)
cmd.exe需要为开始是没有窗户命令可以分批外面来执行/c = 启动完成后退出^& exit部件确保窗口关闭,即使批次没有以exit但是,初始 cmd 仍然没有最小化。
小智 7
“最小化”cmd 窗口的一种方法是使用以下方法减小控制台的大小...
echo DO NOT CLOSE THIS WINDOW
MODE CON COLS=30 LINES=2
Run Code Online (Sandbox Code Playgroud)
如果您愿意,可以将 COLS 减少到大约 18,将 LINES 减少到 1。优点是它可以在 WinPE、32 位或 64 位下运行,并且不需要任何 3rd 方实用程序。
| 归档时间: |
|
| 查看次数: |
162746 次 |
| 最近记录: |