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工具。有任何想法吗?
| 归档时间: |
|
| 查看次数: |
23714 次 |
| 最近记录: |