在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>
成功。
答案 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”返回的路径中删除最后的斜杠),并可能在其他情况下有所帮助。