2014-09-05 74 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處理起始字符的去除以保留請求的格式