[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] 【已解决】Handle的批处理问题

本帖最后由 w281565 于 2022-1-9 19:32 编辑

网站(sysinternals)上另外一个工具 Handle.exe,这个是专门用来处理句柄的。

手动执行过程
用cmd管理员权限运行进入handle所在的文件夹
打开cmd后,输入cd /d c:\Users\hiko\Desktop\Handle回车。
查找需要关闭的句柄"RAN2_ONLINE_XV"的句柄。
handle.exe -a "RAN2_ONLINE_XV"
执行结果
Game.exe           pid: 12208   type: Mutant         188: \Sessions\1\BaseNamedObjects\RAN2_ONLINE_XV
关闭pid:12208、188句柄。
handle.exe -p 12208 -c 188 -y
然后关闭句柄。
上面如何写批处理能帮我写代码吗?
自动获取pid、句柄值关闭句柄。
pid: 12208跟188是浮动

本帖最后由 idwma 于 2022-1-1 16:14 编辑
  1. powershell "$a='c:\Users\hiko\Desktop\Handle\handle.exe'; (&$a) -match '\D*(\d+)\D*(\d+).*'; &$a -p $matches[1] -c $matches[2] -y"
复制代码

TOP

回复 2# idwma

handle下载页面
https://docs.microsoft.com/zh-cn/sysinternals/downloads/handle

我试了一下, 报错
---------------------------------
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\Users\Administrator>powershell "$a='C:\Users\Administrator\Desktop\handle.exe'; (&$a) -match '\D*(\d+)\D*(\d+).*'; &$
a -p $matches[1] -c $matches[2] -y"
Nthandle v4.22 - Handle viewer
Copyright (C) 1997-2019 Mark Russinovich
You can recover from sysinternals and its suppliers only direct damages up to U.S.$5.00.You cannot recover any other dam
ages, including consequential, lost profits, special, indirect or incidental damages.
                   LIMITATION DES DOMMAGES - INTéRêTS ET EXCLUSION DE RESPONSABILITé POUR LES DOMMAGES.Vous pouvez obten
ir de Sysinternals et de ses fournisseurs une indemnisation en cas de dommages directs uniquement à hauteur de 5, 00 $ U
S.Vous ne pouvez prétendre à aucune indemnisation pour les autres dommages, y compris les dommages spéciaux, indirects o
u accessoires et pertes de bénéfices.
Cannot index into a null array.
At line:1 char:84
+ ... $a) -match '\D*(\d+)\D*(\d+).*'; &$a -p $matches[1] -c $matches[2] -y
+                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: ( [], RuntimeException
    + FullyQualifiedErrorId : NullArray

TOP

本帖最后由 5i365 于 2022-1-3 06:56 编辑

回复 2# idwma


不知道这个具体是干什么的, 看看了官方说明,

我想知道这个工具,可以关闭软件吗? 例如,我想关闭正在打开的 酷狗音乐 , 我需要的不是杀死它, 而是正常退出程序,

或者有什么别的工具, 可以实现正常关闭软件的功能吗?

找一个关于用句柄关闭程序的文章:
https://bbs.csdn.net/topics/310223983

还有一篇, 但不是关闭窗口,是关闭显示器
https://www.pstips.net/how-to-sw ... ith-powershell.html

TOP

回复 1# w281565
  1. @echo off
  2. for /f "tokens=6 delims=: " %%i in ('handle.exe -a "RAN2_ONLINE_XV"') do (
  3.     set "HandleID=%%i"
  4. )
  5. echo Find handle ID: %HandleID%
  6. handle.exe -c %HandleID% -y
  7. pause
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 1# w281565


    如果仍有其它问题,请直接回帖说明,不需要发私信给我,谢谢。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 6# Batcher

'handle.exe' 不是内部或外部命令、可执行的程式或批次档。
Find handle ID:
'handle.exe' 不是内部或外部命令、可执行的程式或批次档。
请按任意键继续 . . .

TOP

回复 7# w281565


handle.exe放在C:\Windows\System32目录下
或者handle.exe和bat脚本放在同一个目录下
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 8# Batcher

handle.exe放在C:\Windows\System32目录下

TOP

回复 9# w281565


    5楼代码第2行 handle.exe 改成完整路径例如 "C:\Windows\System32\handle.exe"
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 10# Batcher
改了一样问题

TOP

回复 11# w281565


    请把你最新的bat脚本传到网盘上我试试
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 11# w281565
  1. @echo off
  2. dir C:\Windows\System32\handle.exe
  3. for /f "tokens=3,6 delims=: " %%i in ('C:\Windows\System32\handle.exe -a "RAN2_ONLINE_XV"') do (
  4.     set "PID=%%i"
  5.     set "HandleID=%%j"
  6. )
  7. echo Find process ID: %PID%
  8. echo Find handle ID: %HandleID%
  9. C:\Windows\System32\handle.exe -p %PID% -c %HandleID% -y
  10. pause
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 13# Batcher


    'C:\Windows\System32\handle.exe" -a "txt' 不是内部或外部命令、可执行的程式或批次
档。
Find process ID:
Find handle ID:

TOP

回复 14# w281565


    13楼代码已更新,你再试试呢。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表