Пакет DOS: получить последнюю папку из относительного пути - PullRequest
1 голос
/ 30 ноября 2010

У меня есть следующие значения в пакетном файле DOS (например ...):

..\Apple\Jones  
..\Banana\Smith  
..\Pear\Wilson  

Мне нужно извлечь значения фамилии («Джонс», «Смит», «Уилсон») из каждого значения. Какой метод я могу использовать, который всегда даст мне эти значения подстроки?

Ответы [ 2 ]

2 голосов
/ 30 ноября 2010

Согласно этой теме: Каков наилучший способ сделать подстроку в командном файле?

Я предлагаю вам использовать

%~n0
0 голосов
/ 20 июня 2017

Я уже написал функцию для этого. Вы указываете ему любой путь, и он возвращает вам только имя файла или путь. Работает для любого пути: URL-адрес, путь Windows, путь Linux и т. Д. *

Скопируйте эту функцию в конец вашего пакетного скрипта: (инструкции ниже)

rem ===========================================================================

:Name_From_Path
SetLocal

set _TMP_FOLDERNAME=%1
for %%g in ("%_TMP_FOLDERNAME%") do set _TMP_FOLDERNAME=%%~nxg

EndLocal & set _Name_From_Path=%_TMP_FOLDERNAME%
goto :EOF

rem ===========================================================================

Использование:

CALL :Name_Of_Path ..\Apple\Jones
ECHO %_Name_From_Path%

Результат: Джонс

...