在windows中将符号链接转换为硬链接
我想在windows批处理脚本的目录中将软链接递归地转换为硬链接。我已经能够在linux中做到这一点,但我不太确定如何在批处理文件中做到这一点。有人能告诉我该怎么做才能完成吗在windows中将符号链接转换为硬链接,windows,batch-file,symlink,Windows,Batch File,Symlink,我想在windows批处理脚本的目录中将软链接递归地转换为硬链接。我已经能够在linux中做到这一点,但我不太确定如何在批处理文件中做到这一点。有人能告诉我该怎么做才能完成吗 谢谢我看到了两种将符号链接转换为硬链接的方法: 使用实用程序 我能够挖掘更多,我认为/L将有助于复制符号链接。但我不确定我是否正确。我正在尝试将本地计算机中的文件复制到远程主机。我正在复制/L这是正确的方法吗?请记住,这通常不是一件明智的事情,因为符号链接和硬链接的语义有所不同。我想你是在处理一个特殊情况?嗨,Harr
谢谢我看到了两种将符号链接转换为硬链接的方法:
- 使用实用程序
@echo off
set listfile="%temp%\links%random%.html"
start /wait ntfslinksview /shtml %listfile% /folder "." /subfolders
for /f "delims=>< tokens=5,9" %%a in ('
find ">Symbolic Link<" %listfile%
') do (
ren "%%a" "%%~nxa.bak"
mklink /h "%%~fa" "%%b" && del "%%a.bak" || (ren "%%a.bak" "%%~nxa" & echo %%a)
)
del %listfile%
pause
@echo off
setlocal enableDelayedExpansion
for /f "eol=* delims=" %%a in ('dir /s /AL /b "."') do (
for /f "eol=* tokens=2 delims=>" %%b in ('dir "%%a" ^| find "<SYMLINK>"') do (
set "target=%%b"
set "target=!target: %%~nxa =!"
set "target=!target:~0,-1!"
for /f "eol=* delims=[ tokens=2" %%c in ("!target!") do (
ren "%%a" "%%~nxa.bak"
mklink /h "%%~fa" "%%c" ^
&& (del "%%a.bak") ^
|| (ren "%%a.bak" "%%~nxa" & echo %%a)
)
)
)
pause