标题: [已结]有没有变量是可以直接获得当前目录名(不含路径)
[打印本页]
作者: cgi
时间: 2008-7-3 09:01
标题: [已结]有没有变量是可以直接获得当前目录名(不含路径)
请问有没有变量是可以直接获得当前目录名(不含路径)
[
Last edited by HAT on 2008-10-28 at 21:01 ]
作者: HAT
时间: 2008-7-3 09:08
@echo off
set curpath=%~p0
set curpath=%curpath:\=%
echo %curpath%
作者: hongewuyan
时间: 2008-7-3 11:33
啊。。。看了HAT的代码才知道 %0 也可以直接拿来这样扩展的,受教了。
不过HAT的代码似乎对于二级以上的路径有问题,会把整个路径里面的\去除后连在一起。
我之前搞过一个剥取当前路径的批处理,代码比较啰嗦,不知道有没有更简洁的方法:
@echo off
set curpath=%~p0
:loop
for /f "tokens=1* delims=\" %%i in ('echo %curpath%') do (
set a=%%i
set b=%%j
)
set curpath=%b%
echo %b% | find /i "\" > nul
if errorlevel 1 goto ok
if errorlevel 0 goto loop
:ok
echo %a%
作者: 26933062
时间: 2008-7-3 11:33
直接的变量没有,必须进行处理。
@echo off
call :loop "%~dp0"
pause
:loop
for /f "tokens=1* delims=\" %%a in ("%~1") do (
if "%%b"=="" (echo %%a) else call :loop "%%b"
)
goto :eof
@echo off
set "var=%cd%"
:loop
set "var1=%var:*\=%"
set "var=%var1%"
if not "%var1%"=="%var:\=%" goto loop
echo %var1%
pause
[
Last edited by 26933062 on 2008-7-3 at 11:47 AM ]
作者: HAT
时间: 2008-7-3 12:03
@echo off
for %%a in ("%~f0\..") do echo 文件的父文件夹 %%~nxa
作者: 26933062
时间: 2008-7-3 12:07
5楼的方法在根目录下会没有显示
作者: ngd
时间: 2008-7-3 12:46
for /f "delims=" %a in ("%cd%") do echo %~na
作者: cgi
时间: 2008-7-3 13:12
多谢各位前辈
作者: terse
时间: 2008-7-3 15:26
@echo off
for /f "delims=" %%a in ("%cd%") do if "%%~na"=="" (echo %%~dpa)else echo %%~na
pause
作者: qwd
时间: 2008-7-5 00:19
@echo off
echo %~nx0
pause
作者: pighead123
时间: 2008-10-28 18:56
cls
setlocal enabledelayedexpansion
for /f "tokens=1,2* delims=\" %%i in ('echo %~p0') do (
set pathtemp=%%i
if not "%%j"=="" set pathtemp=%%j
echo !pathtemp!
)
处理两层路径的代码 需要再改