DOS Batch: получить последнюю папку от относительного пути
-
29-09-2019 - |
Вопрос
У меня есть следующие значения в пакетном файле DOS (например, ...):
..\Apple\Jones
..\Banana\Smith
..\Pear\Wilson
Мне нужно извлечь значения фамилии («Джонс», «Смит», «Уилсон») от каждого значения. Какую технику я могу использовать, что всегда будет давать мне эти значения подстроки?
Решение
Согласно этой теме: Какой лучший способ сделать подстроку в пакетном файле?
Я предлагаю вам использовать
%~n0
Другие советы
Я уже написал функцию для этого. Вы даете ему какую-либо путь, и он возвращает вам только это имя файла или Pathname. Работает для любого пути: URL, Windows Path, 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%
Результат: Джонс
Не связан с StackOverflow