Eu tenho vários arquivos que criei como hardlinks para outros usando mklink. Preciso de um comando que possa usar dentro de um arquivo em lote para determinar quais arquivos em um determinado diretório têm apenas um link para ele. Sei que fsutil hardlink list
pode me mostrar os links, mas preciso executar o arquivo em lote como um usuário comum, enquanto o comando acima não será executado sem direitos de administrador. Estou procurando uma maneira de fazer isso sem instalar aplicativos de terceiros.
Não conheço nenhuma maneira em lote de mão, mas para o PowerShell, a função da API do Win32 GetFileInformationByHandle retorna a estrutura BY_HANDLE_FILE_INFORMATION , que contém o
nNumberOfLinks
membro, que é um valor numérico que indica o número de hardlinks para o arquivo. (1
significa que não há links físicos, então o número retornado é o número de links físicos + 1).FindLinks da Sysinternals é uma alternativa ao fsutil que mostra links físicos. https://docs.microsoft.com/en-us/sysinternals/downloads/findlinks