2012-01-08 4 views
3

Я хочу получить имя файла из пути к файлу. Моя проблема в том, что я нашел много решений для обработки с помощью ввода через параметры. Но я хочу использовать userinput вместо параметра.Получить имя файла из Filepath

soultion для параметров:

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

Мой сценарий на самом деле выглядит следующим образом:

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

Теперь я хочу, чтобы получить имя файла + расширение от %path% и записать его на %path2%.

Может ли кто-нибудь мне помочь?

+0

Вы знаете, что путь, вероятно, уже используется в качестве параметра? – rene

ответ

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

... и ради Пита не предложит пользователю установить PATH переменную! используйте другое имя переменной!

+0

thx для быстрого решения. я отлично работаю. и thx для подсказки с variablename. –

+2

Нет проблем. Еще один счастливый клиент. Кстати, я принимаю авансы, «принимает», денежные авансы и т. Д. –

2

Альтернатива, вместо использования FOR, которая может быть полезна в некоторых ситуациях, заключается в замене переменной, передающей значения в качестве параметров в CALL.

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