1つのCMDコマンドで1つのアプリを除くすべての開いているウィンドウを閉じる方法

1つのCMDコマンドで1つのアプリを除くすべての開いているウィンドウを閉じる方法

ONE CMD コマンドは、開いているすべてのウィンドウを閉じようとしますが、特定のウィンドウは閉じません。

superuser.comで検索すると、PetSerAlからこの素晴らしいコマンドが見つかりました

powershell -command "(New-Object -comObject Shell.Application).Windows() | foreach-object {$_.quit()}; Get-Process | Where-Object {$_.MainWindowTitle -ne \"\"} | stop-process" 

上記のコマンドは開いているすべてのウィンドウを閉じますが、1 つのウィンドウを除くすべてのウィンドウを閉じる必要があります。

ありがとう

答え1

コマンド自体に同じ構文を使用できます。調べてみると、「タイトルが空の場合を除いてすべてのプロセスを閉じる」というようなことが書かれています。

したがって、タイトルが空で、タイトルが開いたままにしておきたいプロセスのタイトルである場合は閉じないように、AND条件を追加するだけで済みます。タイトルが固定されておらず、変更される場合(たとえば、エディタのウィンドウのように、その時点で開いているファイルの名前によって変更されます)、チェックされたプロパティを変更することができます。MainWindowTitleの代わりにProcessNameをチェックします。

ウィンドウタイトルを使用した次のようになります:

powershell -command "(New-Object -comObject Shell.Application).Windows() | foreach-object {$_.quit()}; Get-Process | Where-Object {($_.MainWindowTitle -ne \"\") -and ($_.MainWindowTitle -ne \"titleOfAppToKeepOpen\")} | stop-process" 

プロセス名を使用した場合の次のようになります。

powershell -command "(New-Object -comObject Shell.Application).Windows() | foreach-object {$_.quit()}; Get-Process | Where-Object {($_.MainWindowTitle -ne \"\") -and ($_.ProcessName -ne \"processToKeepOpen\")} | stop-process" 

関連情報