我想递归地遍历一个目录,并使用完整的文件路径以及相对于基本文件夹路径的路径获取文件名。例如,位于 D:\foo\bar\a\b\file.txt
中的文件有相对路径 bar\a\b\
.
我现在正在使用此代码,但无法按预期工作:
FOR /R D:\Download\758_DATA\ %%F IN (*) DO (
SET B = %%~pF
Set B=%B:~-6% ::take substring of the path
ECHO.%B%
ECHO %%F
ECHO.
)
最佳答案
要获得相对路径,您可以将变量替换与延迟扩展一起使用,如下所示:
setlocal enabledelayedexpansion
for /R . %%f in (*) do (
set B=%%f
echo Relative !B:%CD%\=!
)
我在这里使用当前目录 (%CD%) 作为根目录。
关于batch-file - 如何根据指定的文件夹路径获取目录树中每个文件的相对路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8487489/