2013-06-24 10 views
10

Voglio dividere la stringa (con un percorso) con \ e prendere il nome dell'ultima cartella in una variabile. Per favore aiuto.percorso diviso e prendere l'ultimo nome della cartella nello script batch

es
mypath = D: \ FOLDER1 \ FOLDER2 \ Folder3 \

voglio Folder3 in una variabile.

ho provato con il comando di sotto del quale sta funzionando se l'ultimo carattere non è \:

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

non funziona se l'ultimo carattere è \

Inoltre non funziona se variabile è usato come: per% f a (% mypath%) fare impostare MyFolder =% ~ nxf

risposta

20
@echo off 

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

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

uscite

FOLDER3 
+0

Grazie mille. Questo codice funziona come da mio requisito. – user2013

+7

'% MYDIR: ~ 0, -1%' sembra essere una sorta di metodo di sottostringa, ma qualcuno può spiegare cosa sta succedendo nel ciclo? –

+2

c'è l'ultimo carattere mancante in myfolder! quindi in realtà non funziona. cartella di input: .. \ blalalalal \ Control-Freak restituisce: Control-Frea – xamiro

11

prova:

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

opere anche:

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