相对于另一个在bat文件中的路径

时间:2014-09-05 15:26:37

标签: windows batch-file

我正在编写一个bat文件,其中一个命令需要项目路径和相对于项目的文件路径。

例如

awesomecommand.exe project=C:\MyProject file="myfiles\file1.fbx"

我正在迭代C:\ MyProject(我的.bat文件所在的位置)中的所有文件:

for /R "%~dp0" %%f in (*.fbx) do (
    ....
)

我需要获得相对于%%f的{​​{1}}路径。因此,如果%dp0%%f = C:\MyProject\myfiles\file1.fbx,我需要将结果设为%~dp0="C:\MyProject"

我该怎么做?

2 个答案:

答案 0 :(得分:1)

setlocal enabledelayedexpansion
for ... (
    set P=%%f
    set P=!P:%~dp0=!
    echo !P!
)

将从P中删除启动目录(%~dp0包含尾部斜杠)

答案 1 :(得分:0)

xcopy命令可用于检索具有相对路径的文件列表

pushd "%~dp0"
for /f "tokens=1,* delims=\" %%a in ('xcopy "." "%temp%" /s /l ^| find "\"') do (
    echo %%b
)
popd

格式检索的文件列表
.\folder\file.ext
.\file.ext
....

for命令delimstokens处理删除起始字符以保留所请求的格式

相关问题