中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]如何用批命令截取一个路径的前半部分
作者:
标题: [已结]如何用批命令截取一个路径的前半部分 上一主题 | 下一主题
qq11211
初级用户





积分 42
发帖 15
注册 2006-5-11
状态 离线
『楼 主』:  [已结]如何用批命令截取一个路径的前半部分

如:C:\Program Files\Yahoo!\Messenger\skins\custom 只截取为C:\Program Files\Yahoo!\Messenger\

希望各位指点,谢谢!

[ Last edited by willsort on 2006-5-13 at 18:26 ]

2006-5-13 00:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
electronixtar
铂金会员





积分 7493
发帖 2672
注册 2005-9-2
状态 离线
『第 2 楼』:  

cd C:\Program Files\Yahoo!\Messenger\skins\custom\..\..\

2006-5-13 10:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qq11211
初级用户





积分 42
发帖 15
注册 2006-5-11
状态 离线
『第 3 楼』:  

首先要谢谢electronixtar,再说对不起,因为我没有说清楚。

我的问题应该这样表述: 如何用批命令在文本中截取一个路径的前半部分,
而且保证盘符随机变动,也就是说盘符可能是c,d,e,......路径不变,
如:C:\Program Files\Yahoo!\Messenger\skins\custom\sko.exe  只截取为C:\Program Files\Yahoo!\Messenger\
再将截取的前半部分路径设置为%path1%

希望各位指点,谢谢!

[ Last edited by qq11211 on 2006-5-13 at 13:13 ]

2006-5-13 11:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 4 楼』:  

这个贴子可能对你会有帮助。另外,你截取的条件似乎并不清楚,是每个Messenger目录,还是只有盘符会动态变化?或者是指定层的目录?

2006-5-13 12:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qq11211
初级用户





积分 42
发帖 15
注册 2006-5-11
状态 离线
『第 5 楼』:  

谢谢3742668

文本中的路径是一个文件的绝对路径,直接可以获得,盘符是动态变化的,其他不变,执行批命令后路径成为x:\Program Files\Yahoo!\Messenger,x为动态盘符。

我对dos命令不熟悉,希望朋友们直接给出代码,谢谢!

[ Last edited by qq11211 on 2006-5-13 at 13:24 ]

2006-5-13 13:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 6 楼』:  


@echo off
rem 先假设你已把完整路径保存到变量str中了,即:str=C:\Program Files\Yahoo!\Messenger\skins\custom\sko.exe
set tmp1=:\Program Files\Yahoo!\Messenger
set path1=%str:~0,1%%tmp1%
似乎是最简单的一种可能。

2006-5-13 13:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qq11211
初级用户





积分 42
发帖 15
注册 2006-5-11
状态 离线
『第 7 楼』:  

谢谢3742668版主,已经搞定


:: 文本中 path1="C:\\Program Files\\Yahoo!\\Messenger\\skins\\Default"

set path1=%path1:~0,2%:\Program Files\Yahoo!\Messenger"

[ Last edited by qq11211 on 2006-5-13 at 15:08 ]

2006-5-13 14:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
chineselgs
高级用户

论坛灌水专业户


积分 613
发帖 266
注册 2006-4-19
来自 河南省
状态 离线
『第 8 楼』:  

呵呵,高手就是不一样~~



饮马恒河畔,剑指天山西,碎叶城揽月,库叶岛赏雪,黑海之滨垂钓,贝尔加湖面张弓;中南半岛访古,东京废墟祭祖!
  
2006-5-13 14:39
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (342210799)  编辑帖子  回复  引用回复
qq11211
初级用户





积分 42
发帖 15
注册 2006-5-11
状态 离线
『第 9 楼』:  

再请教3742668版主,在"C:\Program Files\Yahoo!\Messenger"这个路径中冒号是第一个字符,如果跳过冒号直接提取第2个字符c 代码应该是什么?那里可以找到相关教程
万分感谢!

2006-5-13 15:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 10 楼』:  

set /?或者 "帮助与支持"中搜索"set"都可以查到详细的用法。

"在"C:\Program Files\Yahoo!\Messenger"这个路径中冒号是第一个字符,如果跳过冒号直接提取第2个字符c 代码应该是什么?"
    冒号并非第一个字符,只能说它的偏移量是1,同理,要想获得其他的字符只要用
%str:~偏移量,字符个数%就行了。

2006-5-13 15:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qq11211
初级用户





积分 42
发帖 15
注册 2006-5-11
状态 离线
『第 11 楼』:  

谢谢3742668版主,明白了!

2006-5-13 15:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
doscc
中级用户




积分 256
发帖 93
注册 2006-3-26
来自 广东
状态 离线
『第 12 楼』:  



  Quote:
Originally posted by 3742668 at 2006-5-13 13:10:
[code]
@echo off
rem 先假设你已把完整路径保存到变量str中了,即:str=C:\Program Files\Yahoo!\Messenger\skins\custom\sko.exe
set tmp1=:\Program Files\Yahoo!\Messenger
set path1= ...

思路不错!

2006-5-16 08:52
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: