2017-07-12 48 views
3

我想知道是否有方法在运行某个命令后最小化批处理窗口。我已经知道启动/分钟和技巧来最小化启动窗口,但是当它运行循环或超时时呢?批处理 - 运行循环命令时最小化窗口(未启动最小化)

比方说:

echo Hello! 
timeout /t 100 
:COMMAND TO MINIMIZE WINDOW WHILE TIMEOUT IS RUNNING 

现在我打电话批处理文件隐藏窗口的AutoIt脚本,而该命令与运行:

WinSetState($application_name, "", @SW_HIDE) 

但我正在寻找对于可以直接在.bat文件中编码的纯批处理/ powershell/vbs解决方案。

谢谢你的时间!

回答

2

使用PowerShell的调用选项,不执行命令或脚本。如果你想

@echo off & setlocal 

echo Hello! 
powershell -window minimized -command "" 
timeout /t 100 
powershell -window normal -command "" 

FWIW,-window hidden也可用。

+0

非常干净的解决方案和简单。我喜欢批量使用powershell来添加更多功能!窗口隐藏,然后在命令完美后恢复正常。 – Rakha

0

这会做。但是,您需要在超时之前运行最小化,因为它是批量处理。现在超时将在窗口最小化后发生。这个例子会在ping过程中保持这个窗口,这样你可以看到它最小化。

echo Hello! 
ping 127.0.0.1 
if not DEFINED IS_MINIMIZED set IS_MINIMIZED=1 && start "" /min "%~dpnx0" %* && exit 
timeout /t 100 
exit 
0

您可以最小化命令在运行过程中提示上,但你需要两个额外的脚本:windowModegetCmdPid.bat

@echo off 
echo Hello! 
call getCmdPid >nul 
call windowMode -pid %errorlevel% -mode minimized 

timeout /t 100 
call getCmdPid >nul 
call windowMode -pid %errorlevel% -mode normal