批量获取路径的一部分的最简单方法是什么?
从我现在知道的其他“建议问题”中~dp0
,但似乎这只适用于当前工作目录?
相反,我想从环境变量中获取子字符串。具体来说,一切都到了决赛\
。
在 bash 中,我可以做到这一点newpath=${fullpath%\\*}
,是否有一个同样简单的批处理构造?
批量获取路径的一部分的最简单方法是什么?
从我现在知道的其他“建议问题”中~dp0
,但似乎这只适用于当前工作目录?
相反,我想从环境变量中获取子字符串。具体来说,一切都到了决赛\
。
在 bash 中,我可以做到这一点newpath=${fullpath%\\*}
,是否有一个同样简单的批处理构造?
从我阅读您的问题的方式来看,您需要指定路径的父目录。
基于 RGuggisberg 的回答,你可以做这样的事情。
@echo off
call :Parent "%~dp0"
exit /b 0
:Parent <Path>
pushd "%~f1\.." || exit /b 1
echo %CD%
popd
exit /b 0
这是一种从环境变量中消除尾随反斜杠的方法:
@echo off
set "var=c:\program files\rock & roll\"
for /f "delims=" %%a in ("%var%\.") do echo set "var=%%~fa"
pause
下面是一种方法(假设变量 fullpath 包含路径)。无论是否有尾随\,这都有效。另一种方法是修剪最后一个字符,但假设你总是有一个尾随\,你可能没有???当然,您可能希望将 %cd% 存储在其他变量中,而不是回显它。
pushd %fullpath%
echo.%cd%
popd