中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请写一个批处理语句:删除路径字符串中的指定字符
作者:
标题: 请写一个批处理语句:删除路径字符串中的指定字符 上一主题 | 下一主题
lxllxl
初级用户





积分 38
发帖 17
注册 2008-9-11
状态 离线
『楼 主』:  请写一个批处理语句:删除路径字符串中的指定字符

有一个可变路径字符,要求对该路径做如下处理:
1、检测该路径是否带有盘符,如果带将盘符及其后的"\"取掉
2、检测第一个及最后一个字符是否为"\",如果是取掉

如原三个为:
D:\CZY\       czy\cc\      \cc\xx
处理后为
czy   czy\cc      cc\xx

语句尽量简洁,最好是一条语句。
谢谢

───────────────── 版务记录 ─────────────────
执行:HAT
操作:在帖子标题中增加搜索关键字;代码加code标签
说明:原标题"请写一个批处理语句"不利于论坛搜索
处罚:因属论坛新人,不予积分处罚
提示:请访问 {7326}论坛新手必读,所有人的基本行为准则[转帖]
───────────────── 版务记录 ─────────────────


[ Last edited by HAT on 2008-9-24 at 09:31 PM ]

2008-9-17 19:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hackate
中级用户





积分 228
发帖 125
注册 2008-8-25
状态 离线
『第 2 楼』:  

楼主的意思实在难于琢磨..不知道具体是要怎么操作..
你是要在程序里随时获取当前路径,然后对当前路径进行如上说的样操作呢.
还是路径保存在某文件里面,要提取操作..具体真不知道你要怎么处理.请表明白.

2008-9-17 19:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxllxl
初级用户





积分 38
发帖 17
注册 2008-9-11
状态 离线
『第 3 楼』:  

路径赋予一个环境变量,只要写出对该变量的处理语句就行了。

[ Last edited by lxllxl on 2008-9-17 at 07:27 PM ]

2008-9-17 19:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 4 楼』:  


@echo off
set str=D:\CZY\       czy\cc\      \cc\xx\
if "%str:~-1%" equ "\" set str=%str:~0,-1%
set str=%str:*:\=%




2008-9-17 19:55
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hackate
中级用户





积分 228
发帖 125
注册 2008-8-25
状态 离线
『第 5 楼』:  

@echo off
setlocal enabledelayedexpansion
set "str=\CZY\csd\"
set "str=!str:*:=!"
if "!str:~0,1!"=="\" (
set "str=!str:~1!"
if "!str:~-1!"=="\" (
set "str=!str:~0,-1!"
))
echo !str!
pause

代码比较多.就目前不用第三方程序,似乎没有一行代码可以完成的吧,可能我比较菜

2008-9-17 19:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxllxl
初级用户





积分 38
发帖 17
注册 2008-9-11
状态 离线
『第 6 楼』:  

谢谢4楼上的朋友..
可是我在测试时输入\CZY\CCX时返回还是\CZY\CCX而不是CZY\CCX

能不能再改改?

2008-9-17 20:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 7 楼』:  Re 6楼

你在顶楼的提问中,并未提出这个要求。
@echo off
set str=D:\CZY\       czy\cc\      \cc\xx\
if "%str:~-1%" equ "\" set str=%str:~0,-1%
set str=%str:*\=%




2008-9-17 20:05
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxllxl
初级用户





积分 38
发帖 17
注册 2008-9-11
状态 离线
『第 8 楼』:  

谢谢五楼的朋友..虽然语句比较多,但测试没发现什么问题...看的我都头大...

2008-9-17 20:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxllxl
初级用户





积分 38
发帖 17
注册 2008-9-11
状态 离线
『第 9 楼』:  

谢谢两位朋友帮我解决了问题...更感谢HAT提供精炼的语句..闲时再研究研究代码.

HAT..HAT...你是我的偶像

[ Last edited by lxllxl on 2008-9-17 at 08:15 PM ]

2008-9-17 20:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxllxl
初级用户





积分 38
发帖 17
注册 2008-9-11
状态 离线
『第 10 楼』:  

7楼提供的语句当CZY\CCX时返回还是CCX而不是CZY\CCX
请HAT再看看..

2008-9-17 20:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 11 楼』:  Re 10楼


@echo off
set str=CZY\       czy\cc\      \cc\xx\
if "%str:~-1%" equ "\" set str=%str:~0,-1%
set str=%str:*:\=%
if "%str:~0,1%" equ "\" set str=%str:~1%




2008-9-17 21:02
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxllxl
初级用户





积分 38
发帖 17
注册 2008-9-11
状态 离线
『第 12 楼』:  

以上语句在WINDOWS下测试是正确的.可是在纯DOS模式下测试出错了..返回为空.不知道什么原因..应该怎么解决?

如果是command的问题那拿什么替换?我用的是论坛MSDOS7.1中的COMMAND.COM..在线等,有知道的帮帮

[ Last edited by lxllxl on 2008-9-18 at 12:30 PM ]

附件 1: 未命名.GIF (2008-9-18 12:20, 4.09 K,下载次数: 1)


2008-9-18 12:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
chenall
银牌会员




积分 1276
发帖 469
注册 2002-12-23
来自 福建泉州
状态 离线
『第 13 楼』:  

没有写清楚使用坏境,上面的语句是WINNT下的CMD才能用的.纯DOS是不能用的.



QQ:366840202
http://chenall.net
2008-9-18 13:37
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (366840202)  编辑帖子  回复  引用回复
lxllxl
初级用户





积分 38
发帖 17
注册 2008-9-11
状态 离线
『第 14 楼』:  

那在纯DOS模式下应该怎么实现如题功能?

2008-9-18 17:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxllxl
初级用户





积分 38
发帖 17
注册 2008-9-11
状态 离线
『第 15 楼』:  

使用外部命令STRINGS已解决。。

2008-9-19 17:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: