Windows native 替代 ln -s
是 mklink
。readlink
是否有任何 native 替代品?或者如何本地识别文件是否是符号链接(symbolic link)?
最佳答案
我不相信有任何工具直接等同于 readlink
。但是您可以在 dir
的输出中看到某个项目是否是符号链接(symbolic link),因此您仍然可以从命令行或脚本中确定这一点。
测试它是否是符号链接(symbolic link)
您可以使用以下语法轻松测试给定文件是否是符号链接(symbolic link):
dir mysymlink | find "<SYMLINK>" >NUL
if not errorlevel 1 echo. It's a symlink!
在找到“
<SYMLINK>
”的情况下,错误级别将为 0,否则为 1。确定符号链接(symbolic link)的目标
确定符号链接(symbolic link)的实际目标是另一回事,在我看来并不那么简单。
dir mysymlink | find "<SYMLINK>"
的输出可能看起来像11/13/2012 12:53 AM <SYMLINK> mysymlink [C:\Windows\Temp\somefile.txt]
你可以解析这个,但是有些字符很难在一个变量中处理所有的,所以我发现处理一个临时文件更容易:
dir mysymlink | find "<SYMLINK>" > temp.txt
for /f "tokens=6" %i in (temp.txt) do @echo %i
这会产生类似
[C:\Windows\Temp\somefile.txt]
的输出。 (记住在任何批处理脚本中使用 %%i
;以上来自命令提示符。)要获得没有括号的结果,您可以执行以下操作:
dir mysymlink | find "<SYMLINK>" > temp.txt
for /f "tokens=6" %i in (temp.txt) do set answer=%i
echo %answer:~1,-1%
变量
%answer%
包含带括号的结果,因此 %answer:~1,-1%
是没有第一个或最后一个字符的结果。关于windows - Windows 上 readlink 的 native 替代方案,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13298414/