获取 Windows 上文件的硬链接数(无需使用 fsutil,需要管理员权限)

获取 Windows 上文件的硬链接数(无需使用 fsutil,需要管理员权限)

我使用 mklink 将各种文件创建为指向其他文件的硬链接。我需要一个可以在批处理文件中使用的命令来确定给定目录中的哪些文件只有一个链接。我知道fsutil hardlink list可以显示链接,但我需要能够以普通用户身份运行批处理文件,而上述命令在没有管理员权限的情况下无法运行。我正在寻找一种无需安装第三方应用程序即可执行此操作的方法。

答案1

我不知道有什么方法可以批量处理,但对于 PowerShell,Win32 API 函数 GetFileInformationByHandle返回BY_HANDLE_FILE_INFORMATION 结构,其中包含nNumberOfLinks成员,该成员是一个数值,表示文件的硬链接数。(1表示没有硬链接,因此返回的数字是硬链接数 + 1)。

答案2

Sysinternals 的 FindLinks 是 fsutil 的替代品,它可以显示硬链接。https://docs.microsoft.com/en-us/sysinternals/downloads/findlinks

相关内容