首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让批处理文件发现一个目录是否实际上是一个Junction?

如何让批处理文件发现一个目录是否实际上是一个Junction?
EN

Stack Overflow用户
提问于 2011-01-31 03:43:52
回答 3查看 3.5K关注 0票数 5

我正在写一个批处理文件(.bat),但我找不到一种方法来发现我有路径的给定目录是真实目录还是连接(使用mklink /j在Windows7上创建的)。有谁能给我指个方向吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-31 03:53:45

这是一种糟糕的技术,但如果文件不是交叉点,则指向文件的fsutil reparsepoint query路径将失败(%ERRORLEVEL%将为1),如果是交叉点,则将成功(%ERRORLEVEL%将为0)。这样做的另一个问题是fsutil希望您成为管理员。此外,并不是所有的重解析点都是目录连接。

票数 0
EN

Stack Overflow用户

发布于 2011-03-01 18:47:36

在批处理脚本中,您可以使用以下内容:

代码语言:javascript
复制
 SET Z=&& FOR %%A IN (linkfilename) DO SET Z=%%~aA
 IF "%Z:~8,1%" == "l" GOTO :IT_A_LINK

这比调用DIR /AL更快。

%%~aA获取"linkfilename“的属性,

9个字符的字符串,如d-------- (一个目录),

或者d-------l到目录的链接,

或者--------l一个指向文件的链接。

然后,%Z:~8,1%只获取重解析点属性。

票数 12
EN

Stack Overflow用户

发布于 2014-06-05 22:53:23

我有一个小gem,它将列出您当前目录中的所有连接及其目标:

代码语言:javascript
复制
for /F "delims=;" %j in ('dir /al /b') do @for /F "delims=[] tokens=2" %t in ('dir /a ^| findstr /C:"%j"') do @echo %j :: %t

输出示例:

代码语言:javascript
复制
Application Data :: C:\Users\AB029076\AppData\Roaming
Cookies :: C:\Users\AB029076\AppData\Roaming\Microsoft\Windows\Cookies
Local Settings :: C:\Users\AB029076\AppData\Local
My Documents :: C:\Users\AB029076\Documents
NetHood :: C:\Users\AB029076\AppData\Roaming\Microsoft\Windows\Network Shortcuts
PrintHood :: C:\Users\AB029076\AppData\Roaming\Microsoft\Windows\Printer Shortcuts
Recent :: C:\Users\AB029076\AppData\Roaming\Microsoft\Windows\Recent
SendTo :: C:\Users\AB029076\AppData\Roaming\Microsoft\Windows\SendTo
Start Menu :: C:\Users\AB029076\AppData\Roaming\Microsoft\Windows\Start Menu
Templates :: C:\Users\AB029076\AppData\Roaming\Microsoft\Windows\Templates
TestLink :: C:\Users\AB029076\AppData\Roaming\Microsoft\Windows\Network Shortcuts
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4845039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档