使用 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%
我的意思是获取完整目录路径的最后一部分,当它来自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%