
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"