web-dev-qa-db-ja.com

開いているすべてのWindowsを1つのCMDコマンドで閉じます

CMDを使用して、開いているすべてのウィンドウ(プログラム、Windowsエクスプローラーなど)を閉じます。私が見つけた最も簡単な方法は、CMDを使用せずに、次の2つのPowerShellコマンドを実行することです。

(New-Object -comObject Shell.Application).Windows() | foreach-object {$_.quit()}

Get-Process | Where-Object {$_.MainWindowTitle -ne ""} | stop-process

これはかなりうまくいきますが、CMDから直接実行する方法がわかりません。 powershell -noexitを使用してPowerShellコマンドを実行し、^を使用して一部のcmd関数を無視して、以下のコマンドを試しましたが、機能しません。

powershell -noexit "(New-Object -comObject Shell.Application^).Windows(^) ^| foreach-object {$_.quit(^)}"

powershell -noexit "Get-Process ^| Where-Object {$_.MainWindowTitle -ne ""} ^| stop-process"

また、taskkillコマンドを使用したり、.ps1ファイルを作成してstart .ps1を使用して実行したりすることもしたくありません。

2
Bita

PetSerAl によって解決されます。

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

Stop-Processは実際にプロセス全体を終了します。

2
Bita