鉴于当前目录%CD%
是
C:\Parent\Child
在批处理文件中,如何将值Child
输入变量?
感谢
答案 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"