2017-07-12 3 views
3

特定のコマンドを実行した後にバッチウィンドウを最小化する方法があるのだろうかと思います。私は既に開始/分を知っていて、ウィンドウを最小化するためのトリックを知っていますが、ループやタイムアウトを実行している間はどうでしょうか?ループコマンドを実行中にバッチ最小化ウィンドウ(最小化を開始しません)

さんが言ってみましょう:

WinSetState($application_name, "", @SW_HIDE) 

しかし、私が探しています:コマンドがで実行されている間

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

は今、私は、ウィンドウを非表示にするBATファイルでのAutoItスクリプトを呼んでいます.batファイルで直接コーディングできる純粋なバッチ/ powershell/vbsソリューションの場合

ありがとうございました!

答えて

2

利用のPowerShellの呼び出しオプション:windowModegetCmdPid.batを。

@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

あなたは、実行中のコマンドプロンプトを最小限に抑えることができますが、あなたは、2つの追加のスクリプト必要があります:何のコマンドまたはスクリプトを実行していない、

@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 
関連する問題