получение только имени файла в команде оболочки - PullRequest
0 голосов
/ 30 сентября 2011

Я хочу получить только имя файла (а не полный путь) при запуске команды оболочки для некоторого расширения файла (в контекстном меню этого) Вероятно, это делается как-то в реестре, в расширении файла под HKCR. Любой из% 1% l% L дает полный путь. Я хочу только имя файла

спасибо


Идея хорошая, но я не могу заставить ее работать

Я создал файл - GetFileName.bat Я положил его где-то в %path%

это выглядит так: @set Ret="%~n1"

и в реестр я положил следующую команду

cmd /k GetFileName "%L" & hh.exe -decompile extracted %Ret%

, что означает: * Запустите это - GetFileName "% L" * а затем - hh.exe - декомпилировать извлеченные% Ret%

но %Ret% не дает мне результат GetFileName, хотя он содержит переменную среды Ret с правильным значением.

Я полагаю, что в реестре нельзя использовать эту переменную среды, потому что она находится в той же строке

1 Ответ

0 голосов
/ 30 сентября 2011

Вы можете использовать модификатор %~n для извлечения имени файла из пути в аргументе скрипта, но он не распознает другие переменные среды, поэтому вам придется вставить его в отдельный пакетный файл:

getext.bat:

@set Ret=%~n1

, а затем

C:\> getext hello.bat
C:\> echo %Ret%
hello
...