中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-13 22:52
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » for 怎样获取除最后一个令牌之外其余字符
楼 主 for 怎样获取除最后一个令牌之外其余字符 发表于 2008-06-27 21:20 ·  中国 四川 德阳 电信
初级用户
积分 96
发帖 45
注册 2007-03-20 06:24
UID 82322
性别 男
状态 离线
给定一个字符串路径,路径深度不定,比如 c:\windows\system32\a\b\c\name
用怎样的办法能取到字符串c:\windows\system32\a\b\c,用语句for也就是以"\"为分隔符,去掉最后一个令牌name之外余下的字符,因为深度不定,所以难以获取令牌数量,我知道用*可以获取余下(从左至右)的令牌,但是反过来就不知道怎样弄了,望高手帮忙!
2 发表于 2008-06-27 21:33 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
UID 115804
性别 男
状态 离线
for %%a in (c:\windows\system32\a\b\c\name.tmp) do echo %%~dpa
pause>nul
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
joyoustar +2 2008-06-28 11:16
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
3 发表于 2008-06-27 23:36 ·  中国 安徽 合肥 联通
初级用户
★★
积分 175
发帖 55
注册 2007-04-30 07:15
UID 87008
性别 男
状态 离线
@echo off
set str=c:\windows\system32\a\b\c\name
echo %str:~0,-5%
pause>nul
4 发表于 2008-06-28 11:15 ·  中国 四川 德阳 电信
初级用户
积分 96
发帖 45
注册 2007-03-20 06:24
UID 82322
性别 男
状态 离线
非常感谢!
5 发表于 2008-06-28 13:30 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
遇到空格记得加双引号

@echo off
for %%a in ("C:\Program Files\NetMeeting\conf.exe") do echo 文件所在的目录 %%~dpa
for %%a in ("C:\Program Files\NetMeeting\conf.exe\..") do echo 文件的父文件夹 %%~nxa
论坛跳转: