【问题标题】:Path relative to another in bat file [duplicate]bat文件中相对于另一个的路径[重复]
【发布时间】:2014-09-05 15:26:36
【问题描述】:

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

例如

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

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

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

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

我该怎么做?

【问题讨论】:

    标签: windows batch-file


    【解决方案1】:
    setlocal enabledelayedexpansion
    for ... (
        set P=%%f
        set P=!P:%~dp0=!
        echo !P!
    )
    

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

    【讨论】:

    • 完美运行,谢谢!
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-27
      • 2012-07-13
      • 2013-02-02
      • 1970-01-01
      • 2011-01-23
      • 2010-12-11
      • 2011-01-11
      • 1970-01-01
      相关资源
      最近更新 更多