我需要帮助解决以下问题:
我想使用 CMD 命令将文件路径拆分为批处理文件中的组件。
首先我确定批处理文件所在的路径:
set home=%~dp0 (e.g. C:\SomeFolder\OtherFolder\)
我需要的是将此字符串提取到:
- C:
- 某个文件夹
- 其他文件夹
并将这些组件重新连接到:
- C:\\SomeFolder\\OtherFolder\\
这有助于我遍历文件路径的元素
set List=!home!
:ProcessListSource
FOR /f "tokens=1* delims=\" %%a IN ("!List!") DO (
if "%%a" NEQ "" (
echo %%a
)
if "%%b" NEQ "" (
set List=%%b
goto :ProcessListSource
)
)
循环工作正常,文件路径的组件正确回显。我认为通过简单的字符串连接来更改 echo 语句会很容易
if "%%a" NEQ "" (
set foo=%foo%%%a
set foo=%foo%\\
)
结果简直发人深省。只有反斜杠会被添加到变量中。我的错误在哪里?回显 %%a 工作正常,但在连接语句中似乎是一个错误。我玩弄引号和“!” 但没有任何效果。
对此的任何帮助都将受到高度赞赏