split path and take last folder name in batch scri

2019-01-14 22:24发布

I want to split the string (having a path) with \and take last folder name in a variable. Please help.

e.g
mypath=D:\FOLDER1\FOLDER2\FOLDER3\

I want FOLDER3 in a variable.

I tried with the command below which is working if the the last character is not \ :

for %f in (C:\FOLDER1\FOLDER2\FOLDER3) do set myfolder=%~nxf

It is not working if the last character is \

Also it is not working if variable is used like : for %f in (%mypath%) do set myfolder=%~nxf

3条回答
ゆ 、 Hurt°
2楼-- · 2019-01-14 22:44

When your current folder contains spaces then try this:

@echo off
for %%f in ("%CD%") do set LastPartOfFolder=%%~nxf

echo %LastPartOfFolder%
查看更多
贼婆χ
3楼-- · 2019-01-14 22:57
@echo off

set MYDIR=C:\FOLDER1\FOLDER2\FOLDER3\
set MYDIR1=%MYDIR:~0,-1%

for %%f in (%MYDIR1%) do set myfolder=%%~nxf
echo %myfolder%

outputs

FOLDER3
查看更多
可以哭但决不认输i
4楼-- · 2019-01-14 22:59

try:

for %f in (C:\FOLDER1\FOLDER2\FOLDER3\.) do set myfolder=%~nxf

works also:

for %f in (C:\FOLDER1\FOLDER2\FOLDER3.) do set myfolder=%~nxf
查看更多
登录 后发表回答