2

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

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

相反,我想从环境变量中获取子字符串。具体来说,一切都到了决赛\

在 bash 中,我可以做到这一点newpath=${fullpath%\\*},是否有一个同样简单的批处理构造?

4

3 回答 3

1

从我阅读您的问题的方式来看,您需要指定路径的父目录。

基于 RGuggisberg 的回答,你可以做这样的事情。

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

:Parent <Path>
pushd "%~f1\.." || exit /b 1
echo %CD%
popd
exit /b 0
于 2013-07-12T14:18:58.747 回答
1

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

@echo off
set "var=c:\program files\rock & roll\"
for /f "delims=" %%a in ("%var%\.") do echo set "var=%%~fa"
pause
于 2013-07-12T19:17:38.387 回答
0

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

pushd %fullpath%
echo.%cd%
popd
于 2013-07-12T11:11:06.897 回答