for %%a in ("%cd%") do set folder=%%~na
echo.%folder%
pause
Ответ 3
или вы можете сделать что-то вроде этого
@ECHO OFF
FOR %%a IN (.) DO SET currentfolder=%%~nxa
ECHO %currentfolder%
Ответ 4
Ответ на
@manojlds неверен для всех случаев.
%%~nI ярлык отлично работает для файлов, но не для каталогов.
Пример:
C:\a..o\ex.bat
@ECHO OFF
FOR %%a IN (.) DO SET currentfolder=%%~na
ECHO %currentfolder%
Если я исполняю этот командный файл из его местоположения, вывод "a.":
C:\a..o\>ex.bat
a.
Решение:
Возможное решение состоит в следующем:
C:\sol.bat
@ECHO OFF
SETLOCAL
SET cwd="\%~f1"
SET name=""
:extract
SET char="%cwd:~-2,-1%"
IF NOT %char%=="\" (
SET cwd="%cwd:~1,-2%"
SET name="%char:~1,-1%%name:~1,-1%"
GOTO :extract
)
ECHO %name%
ENDLOCAL