batch-file - 如何根据指定的文件夹路径获取目录树中每个文件的相对路径?

标签 batch-file

我想递归地遍历一个目录,并使用完整的文件路径以及相对于基本文件夹路径的路径获取文件名。例如,位于 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/

相关文章:

windows - 如何在批处理文件中获取昨天的日期

loops - 批处理脚本中的 for 循环增加两个或多个变量

csv - 用于将三个 csv 文件列合并为一列的 Windows 脚本

batch-file - 使用参数包含等号的批处理文件覆盖 .INI 文件

linux - 如何在linux中从具有两个范围的url批量下载文件

linux - 在cmd文件中传递变量并在linux中执行

css - 半自动 CSS 代码传输到现有的 .CSS 文件(例如,使用批处理文件)

windows - 在txt文件中循环并使用批处理文件列出内容

java - 将受限站点添加到 Windows Internet 选项

windows - 如何获得在 vbscript 中运行的单行 xcopy 命令?