web-dev-qa-db-fra.com

diviser le chemin et prendre le dernier nom de dossier dans le script de commandes

Je veux diviser la chaîne (ayant un chemin) avec \et prendre le dernier nom de dossier dans une variable. Veuillez aider.

par exemple
mypath = D:\FOLDER1\FOLDER2\FOLDER3 \

Je veux FOLDER3 dans une variable.

J'ai essayé avec la commande ci-dessous qui fonctionne si le dernier caractère n'est pas \:

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

Cela ne fonctionne pas si le dernier caractère est \

De plus, cela ne fonctionne pas si la variable est utilisée comme: pour% f dans (% mypath%), définissez mon dossier =% ~ nxf

22
user2013
@echo off

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

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

les sorties

FOLDER3
29
user93353

essayer:

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

fonctionne aussi:

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

Lorsque votre dossier actuel contient des espaces, essayez ceci:

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

echo %LastPartOfFolder%
7
Dirk