Как закрыть все открытые окна, кроме одного приложения, с помощью ОДНОЙ команды CMD,

Как закрыть все открытые окна, кроме одного приложения, с помощью ОДНОЙ команды CMD,

Команда 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

Вы можете использовать тот же синтаксис в самой вашей команде. Если вы посмотрите на нее, она говорит что-то вроде "закройте все процессы, за исключением тех, где заголовок пуст"

Таким образом, вы можете просто добавить и условие И, чтобы сказать не закрывать, где заголовок пустой И заголовок является заголовком процесса, который вы хотите оставить открытым. В случае, если заголовок не фиксирован и он меняется (например, окна editot, они меняются вместе с именем файла, открытого в этот момент), вы можете изменить свойство, проверенное вместо 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" 

Связанный контент