Como fechar todas as janelas abertas, exceto um aplicativo, por UM comando CMD,

Como fechar todas as janelas abertas, exceto um aplicativo, por UM comando CMD,

UM comando CMD deseja fechar todas as janelas abertas, mas não fechou uma janela específica.

Eu pesquiso em superuser.com e recebi este comando maravilhoso do PetSerAl

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

este comando acima fecha todas as janelas abertas, mas preciso fechar todas as janelas, exceto uma janela.

Obrigado

Responder1

Você poderia usar a mesma sintaxe no próprio comando. Se você olhar bem, diz algo como "feche todos os processos, excluindo onde o título está vazio"

Então você poderia simplesmente anunciar e AND condição para dizer para não fechar onde o título está vazio E o título é aquele do processo que você deseja manter aberto. Caso o título não seja fixo e mude (como por exemplo as janelas de um editot, ele muda com o nome do arquivo aberto naquele momento) você poderia alterar a propriedade marcada, em vez de MainWindowTitle você poderia verificar ProcessName

algo assim usando o título da janela:

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

algo assim usando o nome do processo:

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

informação relacionada