2014-09-05 62 views
0

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

例如

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

我通过所有文件:c迭代:\ MyProject的(在我的.bat文件所在的位置):

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

,我需要%%f路径的相对得到到%dp0。所以如果%%f = C:\MyProject\myfiles\file1.fbx%~dp0="C:\MyProject",我需要的结果是"myfiles\file1.fbx"

我该怎么做?

回答

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

将从P.删除启动目录(%〜DP0包含一个尾随斜线)

+0

完美地工作,谢谢! – 2014-09-05 17:48:00

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处理起始字符的去除以保留请求的格式