使用批处理文件,我试图获取路径中的最后一个foldername。
批处理文件获取当前工作目录,上升一级并使用该foldername。问题是如果foldername有像" My Project"这样的空格,那么下面的代码将只返回" Project"。
@echo off
cls
:: get pathnames
set ProjectRoot=%~dp0..\
set ProjectRootLast=%ProjectRoot:~0, -1%
for %%f in (%ProjectRootLast%) do (
set ProjectName=%%~nxf
)
echo %ProjectRoot%
echo %ProjectName%
pause
答案 0 :(得分:1)
aschipfl是对的,你应该使用:
@echo off
cls
:: get pathnames
set "ProjectRoot=%~dp0..\"
set "ProjectRootLast=%ProjectRoot:~0,-1%"
for %%f in ("%ProjectRootLast%") do (
set "ProjectName=%%~nxf"
)
echo %ProjectRoot%
echo %ProjectName%
pause
但是你可以使用
更有效地做到这一点for %%* in (.) do echo %%~nx*
获取当前目录的名称和
for %%* in (./..) do echo %%~nx*
获取上面目录的名称