我想分割存储在变量中的目录值。
例如假设我指定目录路径(带双引号)
“C:\Program Files\TeamViewer\TeamViewer.exe”到变量A.我想拆分变量的最后一部分团队查看器到一个变量b以及在那之前C。
对于注释
- 我赋予的值C可能会根据我选择的文件位置而有所不同。
- 目录路径没有预定义,我将使其成为用户定义的。
答案1
存在A具有完整路径的变量,您可以这样做:
@echo off
Set a="C:\Program Files\TeamViewer\TeamViewer.exe"
For %%A in ("%a%") do (
Set c=%%~dpA
Set b=%%~nxA
)
echo.Folder is: %c%
echo.Name is: %b%
借助这个回答https://stackoverflow.com/questions/3667026/meaning-of-dpa
答案2
感谢您的支持。我采用了您的想法,删除了引号,但不是在行中Set a="C:\Program Files\TeamViewer\TeamViewer.exe"
,而是在下一行For %%A in ("%a%") do (
,这给了我预期的结果。我在下一行进行了更改,因为正如我所说,我获得的路径是用户定义的,并且该路径默认带有引号,我无法避免上一行中的引号。
最终的示例编码如下,效果非常好。谢谢!
@echo off
Set a="C:\Program Files\TeamViewer\TeamViewer.exe"
For %%A in (%a%) do (
Set c=%%~dpA
Set b=%%~nxA
)
echo.Folder is: %c%
echo.Name is: %b%