下面展示一个简单的获取BAT上一级到五级目录的方法,获取更多级目录的方法与之类似。
@echo off
set CurrentPath=%~dp0
set P1Path=
set P2Path=
set P3Path=
set P4Path=
set P5Path=
:begin
for /f "tokens=1,* delims=\" %%i in ("%CurrentPath%") do (set content=%%i&&set CurrentPath=%%j)
if "%P1Path%%content%\" == "%~dp0" goto end
set P5Path=%P4Path%
set P4Path=%P3Path%
set P3Path=%P2Path%
set P2Path=%P1Path%
set P1Path=%P1Path%%content%\
goto begin
:end
echo BatPath=%~dp0
echo P1Path=%P1Path%
echo P2Path=%P2Path%
echo P3Path=%P3Path%
echo P4Path=%P4Path%
echo P5Path=%P5Path%
pause
该bat在F:\Youku Files\download\123\456\789路径的测试结果如下:
待优化:
1. P1Path到P5Path依次罗列比较笨,应该有更好的方法实现;
2. 其他bat调用该bat,通过参数(如1,2,3,...)获取指定级目录;