以编程方式从“%~dp0”返回的路径中删除最后一个斜杠

时间:2014-10-08 09:53:51

标签: batch-file windows-7 cmd

在CMD .BAT文件中,我如何以编程方式从"%~dp0"

返回的路径中删除最后的斜杠?

这是为了解决我的命令失败

subst F: "%~dp0"

S:\TLIB distribution\FG trial>subst F: "S:\TLIB distribution\FG trial\"
Path not found - S:\TLIB distribution\FG trial\

,而

S:\TLIB distribution\FG trial>subst F: "S:\TLIB distribution\FG trial"
S:\TLIB distribution\FG trial>

成功。

2 个答案:

答案 0 :(得分:2)

选项1:

pushd "%~dp0"
subst f: .
popd

选项2:

for %%A in ("%~dp0\.") do subst f: "%~fA"

选项3:

for %%A in ("%~f0\..") do subst f: "%~fA"

答案 1 :(得分:0)

试试这个:

SETLOCAL  EnableDelayedExpansion
SET str=%~dp0
SET str=!str:~0,-1!
ECHO %str%
SUBST F: "%str%"

这将返回没有最后一个字符(\)的字符串。

编辑:仅当您不在驱动器根目录中时才有效。因此,使用dbenham的解决方案或使用if语句捕获根情况。我不会删除我的帖子,因为它仍然是标题中问题的一个valide答案(以编程方式从“%~dp0”返回的路径中删除最后的斜杠),并可能在其他情况下有所帮助。