在 cmd 中将目录字符串与变量分开

在 cmd 中将目录字符串与变量分开

我想分割存储在变量中的目录值。

例如假设我指定目录路径(带双引号)

“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%

相关内容