2013-06-24 48 views
10

我想用\拆分字符串(有路徑),並將最後一個文件夾名稱放在變量中。請幫忙。拆分路徑並在批處理腳本中取最後一個文件夾名稱

e.g
mypath中= d:\ FOLDER1 \ FOLDER2 \ FOLDER3 \

我想FOLDER3在變量中。

我試着用下面這是工作,如果最後一個字符的命令不是\

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

它不工作,如果最後一個字符是\

而且它是不是如果變量工作使用這樣的: 爲%F在(%mypath中%)做設置MyFolder文件=%〜NXF

回答

20
@echo off 

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

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

輸出

FOLDER3 
+0

非常感謝你。此代碼按照我的要求工作。 – user2013

+7

'%MYDIR:〜0,-1%'似乎是某種子串方法,但有人可以解釋for循環中發生了什麼嗎? –

+2

我的文件夾中沒有最後一個字符!所以它實際上不起作用。輸入文件夾:.. \ blalalalal \ Control-Freak返回:Control-Frea – xamiro

11

嘗試:

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

作品也:

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