2013-06-24 19 views
10

Chcę podzielić ciąg (posiadający ścieżkę) z \ i pobrać ostatnią nazwę folderu w zmiennej. Proszę pomóż.Podział ścieżki i pobranie ostatniej nazwy folderu w skrypcie wsadowym

np
mojasciezka = D: \ folder1 \ folder2 \ folder3 \

Chcę folder3 w zmiennej.

Próbowałem z poleceniem, poniżej której pracuje, jeśli ostatni znak nie jest \:

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

To nie działa, jeśli ostatni znak jest \

także nie działa, jeśli zmienna jest stosowany następująco: dla% fw (% mojasciezka%) ustawiaj myfolder =% ~ NXF

Odpowiedz

20
@echo off 

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

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

wyjścia

FOLDER3 
+0

Dziękuję bardzo. Ten kod działa zgodnie z moim wymaganiem. – user2013

+7

'% MYDIR: ~ 0, -1%' wydaje się być rodzajem metody podciągu, ale czy ktoś może wyjaśnić, co dzieje się w pętli for? –

+2

Brakuje ostatniego znaku w moim folderze! więc to faktycznie nie działa. folder wejściowy: .. \ blalalalal \ Control-Freak zwraca: Control-Frea – xamiro

11

try:

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

działa również:

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