批量提取部分路径

时间:2013-07-12 11:00:09

标签: batch-file

批量获取路径的最简单方法是什么?

从其他“建议的问题”我现在知道~dp0,但似乎只适用于当前的工作目录?

我希望从环境变量中获取子字符串。具体来说,一切都是最后的\

在bash中,我可以使用newpath=${fullpath%\\*}执行此操作,是否存在等效的简单批处理构造?

3 个答案:

答案 0 :(得分:1)

从我如何阅读你的问题,你想要指定路径的父目录。

根据RGuggisberg的回答,你可以做这样的事情。

@echo off
call :Parent "%~dp0"
exit /b 0

:Parent <Path>
pushd "%~f1\.." || exit /b 1
echo %CD%
popd
exit /b 0

答案 1 :(得分:1)

这是一种从环境变量中消除尾部反斜杠的方法:

@echo off
set "var=c:\program files\rock & roll\"
for /f "delims=" %%a in ("%var%\.") do echo set "var=%%~fa"
pause

答案 2 :(得分:0)

下面是一种方法(假设变量fullpath包含路径)。无论是否有尾随符号都可以。另一种方法是修剪最后一个字符,但这假设你总是有一个尾随\,你可能不会???当然,您可能希望将%cd%存储在其他变量中而不是回显它。

pushd %fullpath%
echo.%cd%
popd