中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-05 15:58
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 怎么获得路径的层数呀? 查看 883 回复 4
楼 主 怎么获得路径的层数呀? 发表于 2007-08-20 09:36 ·  中国 香港 新世界电讯有限公司
新手上路
积分 14
发帖 4
注册 2007-06-30 10:45
19年会员
UID 92747
性别 男
状态 离线
例如 C:\1\2\3\4有四层
2 发表于 2007-08-20 10:37 ·  日本 FUJITSU公司
初级用户
积分 43
发帖 19
注册 2007-08-19 08:47
18年会员
UID 95320
性别 男
状态 离线
@echo off
set file=c:\ab c\def\gh\cd
set count=0

:loop
if "%file:~-1%"=="\" set /a count+=1
set "file=%file:~0,-1%"
if not "%file%" == "" goto loop
echo count=%count%

pause

[ Last edited by halulove on 2007-8-20 at 10:39 AM ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
liudaibin +1 2007-08-20 14:49
3 发表于 2007-08-20 11:57 ·  中国 中电华通
高级用户
★★
积分 846
发帖 247
注册 2006-10-27 12:03
19年会员
UID 68504
性别 男
来自 湖南==》广东
状态 离线
其实这个问题论坛里有很多讨论了,也有很多的方法,楼上的也不错啊

@echo off
set "file=c:\ab c\def\gh\cd"
call :getpath "%file%"
echo 共有:%count%层
pause>nul
:getpath
for /f "delims=\ tokens=1,*" %%i in ("%~1") do (
if "%%i"=="%~1" goto :eof
set/a count+=1
call :getpath "%%j")
4 发表于 2007-08-20 12:29 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
VBS:
file = "c:\ab c\def\gh\cd"
MsgBox UBound(Split(file,"\"))
5 发表于 2007-08-25 13:50 ·  中国 江苏 南京 电信
中级用户
★★
积分 397
发帖 168
注册 2006-10-08 10:07
19年会员
UID 64934
状态 离线
slore 兄的算法太牛了!!很简便!!
论坛跳转: