使用 cd 在一行中获取 for 循环中目录的最后一部分

Get last part of directory in for loop, using cd, and in one line

我的意思是获取完整目录路径的最后一部分,当它来自cd时,它与for一起使用,并在一行中设置。

当来自 cd 时,路径类似于 C:\a\b\c\d\。 结尾的反斜杠使事情复杂化。

This 对于没有结尾反斜杠的目录来说一行是可以的(即,它不能来自 cd)。

This 可以用于尾部反斜杠,但不能用于一行。

的输出
> FOR %%a IN (`cd`) DO echo %%~pa

\a\b\c\d\

的输出
> FOR %%a IN (`cd`) DO echo %%~na

`cd`(我希望这里是一个空字符串)。

我想我应该将它与像 set MYDIR1=%MYDIR:~0,-1% 这样的语法和像 command1 && command 2 这样的一行中的多个命令结合起来。 目标一个班轮将是 像

FOR %%a IN (`cd`) DO set MYDIR1=%MYDIR:~0,-1% && echo %%~nMYDIR1

也许可以使用 tokens and/or delims 但我无法让它工作。

检索当前文件夹的信息

for %%a in (".") do echo %%~nxa

使用带或不带结尾反斜杠的变量检索信息

for %%a in ("%cd%\.") do echo %%~nxa

但请注意,在这两种情况下,您都没有可用于驱动器根文件夹的名称+扩展名。

只是使用在 dostips.com

上发现的技术的另一种选择
set "last=%cd:\=" & set "last=%"
echo %last%