我正在编写一个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"
。
我该怎么做?
答案 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
命令delims
和tokens
处理删除起始字符以保留所请求的格式