我想知道在运行某个命令后是否有办法最小化批处理窗口。我已经知道开始/分钟以及最小化启动窗口的技巧但是当它运行循环或超时时呢?
让我们说:
echo Hello!
timeout /t 100
:COMMAND TO MINIMIZE WINDOW WHILE TIMEOUT IS RUNNING
现在我在bat文件中调用autoit脚本,以便在命令运行时隐藏窗口:
WinSetState($application_name, "", @SW_HIDE)
但是我正在寻找可以直接在.bat文件中编码的纯批/ powershell / vbs解决方案。
感谢您的时间!
答案 0 :(得分:4)
使用PowerShell的调用选项,不执行任何命令或脚本。
@echo off & setlocal
echo Hello!
powershell -window minimized -command ""
timeout /t 100
powershell -window normal -command ""
FWIW,-window hidden
如果您愿意,也可以使用。
答案 1 :(得分:2)
您还可以通过在Powershell中使用以下代码来最小化所有窗口。
$shell = New-Object -ComObject "Shell.Application"
$shell.minimizeall()
检查: https://techibee.com/powershell/powershell-minimize-all-windows/1017
答案 2 :(得分: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
答案 3 :(得分:0)
您可以在运行期间最小化命令提示符,但您还需要两个额外的脚本:windowMode和getCmdPid.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