批处理 - 最小化 window while 运行 循环命令(不开始最小化)
Batch - minimize window while running a loop command (not start minimized)
我想知道是否有办法在运行特定命令后最小化批处理 window。我已经知道 start /min 和启动 window 最小化的技巧,但是当它是 运行 循环或超时时呢?
假设:
echo Hello!
timeout /t 100
:COMMAND TO MINIMIZE WINDOW WHILE TIMEOUT IS RUNNING
现在我在 bat 文件中调用一个 autoit 脚本来隐藏 window 而命令是 运行 :
WinSetState($application_name, "", @SW_HIDE)
但我正在寻找可以直接在 .bat 文件中编码的纯 batch/powershell/vbs 解决方案。
感谢您的宝贵时间!
这样就可以了。但是,您需要 运行 在超时之前最小化,因为它是批量处理的。一旦 window 最小化,现在将发生超时。此示例将在 ping 期间保留 window,因此您可以看到它最小化。
echo Hello!
ping 127.0.0.1
if not DEFINED IS_MINIMIZED set IS_MINIMIZED=1 && start "" /min "%~dpnx0" %* && exit
timeout /t 100
exit
您可以在 运行 期间最小化命令提示符,但您需要两个额外的脚本:windowMode and 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
使用 PowerShell 的调用选项,不执行命令或脚本。
@echo off & setlocal
echo Hello!
powershell -window minimized -command ""
timeout /t 100
powershell -window normal -command ""
FWIW,如果您愿意,也可以使用 -window hidden
。
您还可以通过在 powershell 中使用以下代码来最小化所有 windows。
$shell = New-Object -ComObject "Shell.Application"
$shell.minimizeall()
检查:
https://techibee.com/powershell/powershell-minimize-all-windows/1017
我想知道是否有办法在运行特定命令后最小化批处理 window。我已经知道 start /min 和启动 window 最小化的技巧,但是当它是 运行 循环或超时时呢?
假设:
echo Hello!
timeout /t 100
:COMMAND TO MINIMIZE WINDOW WHILE TIMEOUT IS RUNNING
现在我在 bat 文件中调用一个 autoit 脚本来隐藏 window 而命令是 运行 :
WinSetState($application_name, "", @SW_HIDE)
但我正在寻找可以直接在 .bat 文件中编码的纯 batch/powershell/vbs 解决方案。
感谢您的宝贵时间!
这样就可以了。但是,您需要 运行 在超时之前最小化,因为它是批量处理的。一旦 window 最小化,现在将发生超时。此示例将在 ping 期间保留 window,因此您可以看到它最小化。
echo Hello!
ping 127.0.0.1
if not DEFINED IS_MINIMIZED set IS_MINIMIZED=1 && start "" /min "%~dpnx0" %* && exit
timeout /t 100
exit
您可以在 运行 期间最小化命令提示符,但您需要两个额外的脚本:windowMode and 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
使用 PowerShell 的调用选项,不执行命令或脚本。
@echo off & setlocal
echo Hello!
powershell -window minimized -command ""
timeout /t 100
powershell -window normal -command ""
FWIW,如果您愿意,也可以使用 -window hidden
。
您还可以通过在 powershell 中使用以下代码来最小化所有 windows。
$shell = New-Object -ComObject "Shell.Application"
$shell.minimizeall()
检查: https://techibee.com/powershell/powershell-minimize-all-windows/1017