2012-01-08 230 views
3

我想從文件路徑獲取文件名。 我的問題是,我發現許多解決方案通過參數輸入來處理它。 但我想使用userinput而不是參數。從文件路徑獲取文件名

的參數soultion是:

%~nxI  //I could be number for the parameter count 

我的腳本實際上是這樣的:

@echo off 
    set /p path=Film: 
    echo %path2% 
    pause 

現在我想從%path%獲取文件名+擴展名,並將其寫入%path2%

任何人都可以幫助我嗎?

+0

您知道該路徑可能已被用作參數嗎? – rene 2012-01-08 13:04:53

回答

4
set /p x=Film: 
echo %x% 
for %%F in (%x%) do set q=%%~nF 
echo %q% 

...和天啊不提示用戶設置PATH 變量!使用其他一些變量名!

+0

thx爲快速解決方案。我工作很棒。和thx的提示與變量名。 – 2012-01-08 13:15:10

+2

沒問題。另一個開心的顧客順便說一句,我接受upvotes,'接受',現金墊款等。 – 2012-01-08 13:20:34

2

在某些情況下,替代使用FOR的替代方法是將通過值的變量替換爲CALL中的參數。

call :extractfn %x% q 
echo %q% 
goto :eof 
:extractfn 
set %2=%~n1 
goto :eof