Windows:非ascii文件名的打开文件列表

时间:2017-10-31 16:11:43

标签: windows unicode scripting

我正在编写一个Windows脚本,而我正在尝试获取特定进程的打开文件列表。 Sysinternals的' handle.exe似乎工作正常但用于ascii文件名。对于非ascii字符,它会打印问号。 cmd.exe如何显示内容并不是问题; handle.exe用"?"替换非ascii字符。 (字符0x3F)[1]。

注意[1] dir在同一个cmd.exe上显示文件名就好了。要100%确定我已发出此命令handle.exe > c:\temp.txt,然后使用十六进制编辑器查看temp.txt。它确实有字节0x3F代替非ascii字符。

1 个答案:

答案 0 :(得分:0)

可以使用openfiles执行此任务。默认情况下,openfiles仅报告由文件服务打开的文件,但在启用*称为维护对象列表的功能后,它将报告所有打开的文件。

它有两个缺点:

  1. 根据Microsoft "启用维护对象列表全局 flag可能会降低您的系统速度"

  2. 您可以告诉handle.exe仅查询特定的打开文件 进程但openfiles.exe始终查询所有内容。我找到了openfiles 在这种情况下,handle.exe要慢几秒。

  3. 非常感谢eryksun提出openfiles。不幸的是,他无法发布答案。

    备注

    *:您需要运行openfiles /local on并重新启动