楼 主
[已结]如何用批命令截取一个路径的前半部分
发表于 2006-05-13 00:20 · 中国 上海 东方有线
初级用户
★
积分 42 发帖 15 注册 2006-05-11 13:15 UID 55327
状态 离线
如:C:\Program Files\Yahoo!\Messenger\skins\custom 只截取为C:\Program Files\Yahoo!\Messenger\
希望各位指点,谢谢!
[ Last edited by willsort on 2006-5-13 at 18:26 ]
第 2 楼
发表于 2006-05-13 10:59 · 中国 四川 成都 联通
铂金会员
★★★★
积分 7,493 发帖 2,672 注册 2005-09-02 00:00 UID 42173 性别 男
状态 离线
cd C:\Program Files\Yahoo!\Messenger\skins\custom\..\..\
第 3 楼
发表于 2006-05-13 11:25 · 中国 上海 东方有线
初级用户
★
积分 42 发帖 15 注册 2006-05-11 13:15 UID 55327
状态 离线
首先要谢谢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 ]
第 4 楼
发表于 2006-05-13 12:30 · 中国 湖北 荆门 电信
荣誉版主
★★★
积分 2,013 发帖 718 注册 2006-02-18 07:07 UID 50550
状态 离线
这个贴子 可能对你会有帮助。另外,你截取的条件似乎并不清楚,是每个Messenger目录,还是只有盘符会动态变化?或者是指定层的目录?
第 5 楼
发表于 2006-05-13 13:01 · 中国 上海 东方有线
初级用户
★
积分 42 发帖 15 注册 2006-05-11 13:15 UID 55327
状态 离线
谢谢3742668
文本中的路径是一个文件的绝对路径,直接可以获得,盘符是动态变化的,其他不变,执行批命令后路径成为x:\Program Files\Yahoo!\Messenger,x为动态盘符。
我对dos命令不熟悉,希望朋友们直接给出代码,谢谢!
[ Last edited by qq11211 on 2006-5-13 at 13:24 ]
第 6 楼
发表于 2006-05-13 13:10 · 中国 湖北 荆门 电信
荣誉版主
★★★
积分 2,013 发帖 718 注册 2006-02-18 07:07 UID 50550
状态 离线
@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%
似乎是最简单的一种可能。
第 7 楼
发表于 2006-05-13 14:28 · 中国 上海 东方有线
初级用户
★
积分 42 发帖 15 注册 2006-05-11 13:15 UID 55327
状态 离线
谢谢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 ]
第 8 楼
发表于 2006-05-13 14:39 · 中国 福建 泉州 电信
高级用户
★★
论坛灌水专业户
积分 613 发帖 266 注册 2006-04-19 22:47 UID 54113 来自 河南省
状态 离线
呵呵,高手就是不一样~~
饮马恒河畔,剑指天山西,碎叶城揽月,库叶岛赏雪,黑海之滨垂钓,贝尔加湖面张弓;中南半岛访古,东京废墟祭祖!
第 9 楼
发表于 2006-05-13 15:19 · 中国 上海 东方有线
初级用户
★
积分 42 发帖 15 注册 2006-05-11 13:15 UID 55327
状态 离线
再请教3742668版主,在"C:\Program Files\Yahoo!\Messenger"这个路径中冒号是第一个字符,如果跳过冒号直接提取第2个字符c 代码应该是什么?那里可以找到相关教程
万分感谢!
第 10 楼
发表于 2006-05-13 15:42 · 中国 湖北 荆门 电信
荣誉版主
★★★
积分 2,013 发帖 718 注册 2006-02-18 07:07 UID 50550
状态 离线
set /?或者 "帮助与支持"中搜索"set"都可以查到详细的用法。
"在"C:\Program Files\Yahoo!\Messenger"这个路径中冒号是第一个字符,如果跳过冒号直接提取第2个字符c 代码应该是什么?"
冒号并非第一个字符,只能说它的偏移量是1,同理,要想获得其他的字符只要用
%str:~偏移量,字符个数%就行了。
第 11 楼
发表于 2006-05-13 15:53 · 中国 上海 东方有线
初级用户
★
积分 42 发帖 15 注册 2006-05-11 13:15 UID 55327
状态 离线
第 12 楼
发表于 2006-05-16 08:52 · 中国 上海 华为云
中级用户
★★
积分 256 发帖 93 注册 2006-03-26 22:12 UID 52853 性别 男 来自 广东
状态 离线
Originally posted by 3742668 at 2006-5-13 13:10:
@echo off
rem 先假设你已把完整路径保存到变量str中了,即:str=C:\Program Files\Yahoo!\Messenger\skins\custom\sko.exe
set tmp1=:\Program Files\Yahoo!\Messenger
set path1= ...
思路不错!
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正