SysInternals处理打开时不显示我的.txt文件

时间:2014-03-23 15:22:46

标签: windows shell file-io locking handle

我正在编写一个与锁定文件一起使用的Windows shell脚本。为了知道某个文件是否被锁定,我正在测试来自SysInternals Handle *实用程序,根据其文档:

  

«Handle是一个实用程序,显示有关打开句柄的信息   系统中的任何进程。你可以用它来查看那些程序   打开文件»

所以我通过创建一个简单的.txt文件来尝试:

C:\Windows\system32>echo Foo >> Foo.txt
C:\Windows\system32>notepad Foo.txt

(记事本显示在屏幕上,其中包含一个名为Foo的新文件。

C:\Windows\system32>handle Foo

Handle v3.51
Copyright (C) 1997-2013 Mark Russinovich
Sysinternals - www.sysinternals.com

No matching handles found.

这里发生了什么?我的文件应该是打开的,记事本应该有一个句柄,但是这一行:

handle -p notepad | grep "Foo"

没有结果。
如何使用句柄来了解我的Foo.txt文件是否正在使用(已锁定)? 也许有人可以给我一些使用句柄的例子。

2 个答案:

答案 0 :(得分:5)

记事本将文件读入内存并关闭手柄,这就是为什么你看不到它打开的原因。您可以在Process Monitor跟踪中看到该行为。

答案 1 :(得分:0)

起初我猜你忘记了命令行中的文件扩展名.txt,第二件事是我猜它只会显示带有独占文件锁的进程,这不是记事本给出的。