cmd / powershell:最小化桌面上除当前命令提示符(控制台)或某些特定窗口之外的所有窗口

esc*_*380 2 windows powershell cmd batch-file command-prompt

好吧,我知道如何使用 powershell 方法 - MinimizeAll() 从批处理文件中最小化桌面上所有打开的窗口:

powershell -command "& { $x = New-Object -ComObject Shell.Application; $x.minimizeall() }"
Run Code Online (Sandbox Code Playgroud)

问题是:此方法最小化了所有内容,包括当前的 cmd 控制台,在我的情况下,该控制台应该对用户始终可见。

现在,为了解决这个问题,我使用外部nircmd.exe工具,我的 .bat 文件的这一部分如下所示:

:: change current command prompt window title
title my-cmd-console

:: minimize all open windows on the desktop with powershell command
powershell -command "& { $x = New-Object -ComObject Shell.Application; $x.minimizeall()  }"

:: bring console back to the front with nircmd.exe command 'win activate [filter window by title]' 
nircmd.exe win activate title "my-cmd-console" 
Run Code Online (Sandbox Code Playgroud)

我不喜欢这段代码的是屏幕上有很多“闪烁”:开始时,控制台出现在桌面上,然后它与所有其他窗口一起最小化,然后再次回到桌面前面。

所以,问题是:如何使控制台出现在桌面前面并“锁定它”,以便在到达命令行 EXIT 之前它永远不会消失。

PS 不确定,但也许有一种替代解决方案可以“最小化除特定窗口之外的所有窗口”问题,而无需使用外部nircmd.exe工具。有任何想法吗?

End*_*oro 5

最小化除活动窗口之外的所有窗口(切换命令):

nircmd sendkeypress rwin+home 
Run Code Online (Sandbox Code Playgroud)