
一個 CMD 指令想要關閉所有開啟的窗口,但沒有關閉特定窗口。
我在 superuser.com 中搜索,從 PetSerAl 那裡得到了這個很棒的命令
powershell -command "(New-Object -comObject Shell.Application).Windows() | foreach-object {$_.quit()}; Get-Process | Where-Object {$_.MainWindowTitle -ne \"\"} | stop-process"
上面的命令關閉所有打開的窗口,但我需要關閉除一個窗口之外的所有窗口。
謝謝
答案1
您可以在命令本身中使用相同的語法。如果你仔細看一下,它會說“關閉所有進程,標題為空的除外”
因此,您可以簡單地新增廣告和 AND 條件來表示在標題為空的情況下不關閉,並且標題是您想要保持開啟的進程之一。如果標題不固定並且發生變化(例如 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"