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

时间:2018-09-26 10:38:58

标签: batch-file for-loop pathname

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

来自cd的路径类似于C:\a\b\c\d\。 后面的反斜杠使事情复杂化。

对于没有尾部反斜杠的目录(即它不能来自cd),

This只能用于一行。

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和/或delims,但我无法使其正常工作。

2 个答案:

答案 0 :(得分:1)

要检索当前文件夹的信息

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

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

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

但是请注意,在两种情况下,驱动器的根文件夹都没有名称和扩展名。

答案 1 :(得分:0)

使用在dostips.com上发现的技术的另一种选择

set "last=%cd:\=" & set "last=%"
echo %last%