@echo off
set p0=C:\Abcde\Bcdef\Cdefg\Defgh\Efghijk
echo p0=%p0%
set p1=%p0:~0,-1%
:loop1
if %p1:~-1%==\ goto 1
set "p1=%p1:~0,-1%"
goto loop1
:1
echo p1=%p1:~0,-1%
set p2=%p1:~0,-1%
:loop2
if %p2:~-1%==\ goto 2
set "p2=%p2:~0,-1%"
goto loop2
:2
echo p2=%p2:~0,-1%
set p3=%p2:~0,-1%
:loop3
if %p3:~-1%==\ goto 3
set "p3=%p3:~0,-1%"
goto loop3
:3
echo p3=%p3:~0,-1%作者: pznpt 时间: 2012-3-10 20:49
%~1只是去掉%1外面的引号。要扩展为驱动器和路径,使用%~dp1这样的形式。楼主试试这样:
@echo off
set "pth=C:\A\B\C\D\E"
for /f "delims=" %%a in ("%pth%") do (
echo 路径1=%%~dpa
for /f "tokens=1,2" %%b in ("%%~dpa. %%~dpa..") do (