如果文件夹中有批处理文件的空格,请获取最后的foldername

时间:2015-12-06 21:50:49

标签: windows batch-file path command

使用批处理文件,我试图获取路径中的最后一个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

1 个答案:

答案 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*

获取上面目录的名称