处理 Sysinternals 软件不接受 -c 参数

处理 Sysinternals 软件不接受 -c 参数

我正在尝试使用 Sysinternals Handle 软件关闭 Windows 中锁定文件的句柄 (http://technet.microsoft.com/en-us/sysinternals/bb896655)。

首先我搜索打开的句柄:

handle.exe "C:\Temp"

它向我发出了以下信息:

Far.exe pid:1144 类型:文件 2E8:C:\Temp

Far.exe pid:1144 类型:文件 3A8:C:\Temp

接下来,我使用 -c 参数运行 handle.exe。但是,无论我输入哪个数字,它都不会执行任何操作。我尝试了以下两种方法:1144、2E8、3A8 和十六进制的 1144(478),因为软件帮助说它接受十六进制的 PID。无论我输入什么,它都只会发出以下内容:

Handle v3.46
Copyright (C) 1997-2011 Mark Russinovich
Sysinternals - www.sysinternals.com

usage: handle [[-a [-l]] [-u] | [-c <handle> [-y]] | [-s]] [-p <process>|<pid>] [name]
  -a      Dump all handle information.
  -l      Just show pagefile-backed section handles.
  -c      Closes the specified handle (interpreted as a hexadecimal number).
          You must specify the process by its PID.
          WARNING: Closing handles can cause application or system instability.
  -y      Don't prompt for close handle confirmation.
  -s      Print count of each type of handle open.
  -u      Show the owning user name when searching for handles.
  -p      Dump handles belonging to process (partial name accepted).
  name    Search for handles to objects with <name> (fragment accepted).

No arguments will dump all file references.

我究竟做错了什么?

答案1

看来您还必须指定进程 ID:

handle -c 2e8 -p 1144

答案2

选项语法在竖线之间有 -c,这意味着它是一种可以单独指定的用法。

为了正确,语法图应该是

| -c <handle> [-y] -p <pid> |

这意味着当您指定 -c 时您还必须指定 -p 并且可以指定 -y,并且 -c 需要一个句柄而 -p 需要一个 pid。

相关内容