我为Windows创建了一个小的批处理文件,但遇到一个小问题:
我定义了一个包含字符串的变量,即源文件的路径:
D:\ git_repos \ ALM_Sandboxs \ Sensor_Config \ StateManagement \ ssm_state.cpp
我想提取不带文件名的路径:
D:\ git_repos \ ALM_Sandboxs \ Sensor_Config \ StateManagement \
由于路径可以更改,因此文件名也可以更改,因此我很难这样做。有很多方法,但是我无法使用其中任何一种方法:
第一个是计算文件名的字符数:
set NumberOfCharacter
然后做
set FilePath=%FilePathTemp2:~,%NumberOfCharacter%%
但这不起作用。我只能使用带有以下语法的数字:
set FilePath=%FilePathTemp2:~,-18%
==>可行,但我想从变量中读取18
我已阅读到批处理解释器无法解析%对,所以我尝试了
for /l %%x in (1,1,%strlength%) do set %FilePathTemp2%=%FilePathTemp2:~,-1%
它也不起作用,因为for循环似乎无法在全局范围内更改FilePathTemp2。
感谢您的帮助
答案 0 :(得分:1)
Transform
(这是批处理文件语法。要在命令行上直接使用它,请将两个for %%a in (D:\git_repos\ALM_Sandboxs\Sensor_Config\StateManagement\ssm_state.cpp) do echo %%~dpa
替换为一个%%
)
%
%%~dpa
)的使用以及哪些修饰符是可能的。