找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 19656|回复: 4

[文件操作] 批处理如何根据指定的关键词关闭窗口?

[复制链接]
发表于 2023-10-19 03:12:08 | 显示全部楼层 |阅读模式
请教各位老师一个问题.....如何用批处理命令,,,关闭包含某个关键词的所有窗口,,,但排除这个关键词的exe,,,,其他都关闭....           比如关键词是:   你好            电脑里可能运行打开着包含     *你好*.txt   或者文件夹,,,或者说浏览器窗口也包含这个关键词.......想把其他都关闭掉,,,,,,只保留     *你好*.exe      谢谢
发表于 2023-10-19 04:19:13 | 显示全部楼层
不够谨慎,请小心测试
  1. Get-Process | ?{$_.MainWindowTitle -imatch ".*你好(?!.*\.exe$)"} | %{Stop-Process $_.Id}
复制代码
发表于 2023-10-19 06:04:16 | 显示全部楼层
  1. $word=New-Object -ComObject Word.Application
  2. $word.Tasks['test'].Close()
  3. $word.Quit()
复制代码
这样应该是最准确的,不会直接结束主进程
发表于 2023-10-19 06:25:48 | 显示全部楼层
本帖最后由 Nsqs 于 2023-10-19 07:35 编辑

回复 2# wanghan519


在我的测试发现中似乎gps命令的mainwindowtitle属性仅返回被激活过的该进程,举例
如果该进程有10个,其中有9个是闲置,未被用户激活过,那么只返回最后那一个被激活的窗口标题,其余9个都返回空
比如
(Get-Process).MainWindowTitle|?{$_ -match 'test'}
还有如果想获取PowerShell的标题,以window11为例,可能还同时存在,设置不同的系统,比如有的人用的是WindowsTermina
那么用gps pwsh显然就获取不到标题了
(gps pwsh).MainWindowTitle
还得进行更多细节上的判断比如换成WindowsTerminal
(gps WindowsTerminal).MainWindowTitle
才能获取,只能说这个方法并不不实用

另外Get-Process有个方法叫CloseMainWindow() 也可以不用调用stop-process

算是看懂楼主需求了,只排除进程某个窗口,关闭该进程其他窗口(不包含被排除窗口)...
 楼主| 发表于 2023-10-19 10:57:16 | 显示全部楼层
回复 4# Nsqs


   是的老师,,,,排除  *你好*.exe,,,,,关闭其他的txt...浏览器...文件夹等  标题中含有 *你好* 的窗口   这个对我来说太难了,,,实在没办法写出来,,,,不知道有办法解决不
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 11:41 , Processed in 0.017423 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表