批处理 - 在运行循环命令时最小化窗口(未启动最小化)

问题描述 投票:3回答:3

我想知道是否有办法在运行某个命令后最小化批处理窗口。我已经知道开始/分钟以及最小化启动窗口的技巧但是当它运行循环或超时时呢?

让我们说:

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

现在我正在调用bat文件中的autoit脚本,以便在命令运行时隐藏窗口:

WinSetState($application_name, "", @SW_HIDE) 

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

感谢您的时间!

powershell batch-file vbscript window minimize
3个回答
4
投票

使用PowerShell的调用选项,不执行任何命令或脚本。

@echo off & setlocal

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

如果您愿意,还可以使用FWIW,-window hidden


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
© www.soinside.com 2019 - 2024. All rights reserved.