从%CD%的路径获取目录名称

时间:2011-11-09 20:47:52

标签: batch-file cmd

鉴于当前目录%CD%

C:\Parent\Child

在批处理文件中,如何将值Child输入变量?

感谢

4 个答案:

答案 0 :(得分:28)

for %%a in (.) do set currentfolder=%%~na
echo %currentfolder%

从这里开始:https://superuser.com/questions/160702/get-current-folder-name-by-a-dos-command

答案 1 :(得分:3)

以下是答案

for %%a in ("%cd%") do set folder=%%~na
echo.%folder%
pause

答案 2 :(得分:1)

或者你可以做这样的事情

@ECHO OFF
FOR %%a IN (.) DO SET currentfolder=%%~nxa
ECHO %currentfolder%

答案 3 :(得分:0)

@ 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

<强>试验:

C:\>sol.bat "@!%#"
"@!%#"
C:\>sol.bat a..o
"a..o"