中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-09 18:01
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请写一个批处理语句:删除路径字符串中的指定字符 查看 1,111 回复 14
楼 主 请写一个批处理语句:删除路径字符串中的指定字符 发表于 2008-09-17 19:04 ·  中国 浙江 杭州 电信
初级用户
积分 38
发帖 17
注册 2008-09-11 17:07
17年会员
UID 125416
性别 男
状态 离线
有一个可变路径字符,要求对该路径做如下处理:
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 ]
2 发表于 2008-09-17 19:12 ·  中国 福建 漳州 联通
中级用户
★★
积分 228
发帖 125
注册 2008-08-25 19:17
17年会员
UID 124135
性别 男
状态 离线
楼主的意思实在难于琢磨..不知道具体是要怎么操作..
你是要在程序里随时获取当前路径,然后对当前路径进行如上说的样操作呢.
还是路径保存在某文件里面,要提取操作..具体真不知道你要怎么处理.请表明白.
3 发表于 2008-09-17 19:25 ·  中国 浙江 杭州 电信
初级用户
积分 38
发帖 17
注册 2008-09-11 17:07
17年会员
UID 125416
性别 男
状态 离线
路径赋予一个环境变量,只要写出对该变量的处理语句就行了。

[ Last edited by lxllxl on 2008-9-17 at 07:27 PM ]
4 发表于 2008-09-17 19:55 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
@echo off
set str=D:\CZY\ czy\cc\ \cc\xx\
if "%str:~-1%" equ "\" set str=%str:~0,-1%
set str=%str:*:\=%
5 发表于 2008-09-17 19:58 ·  中国 福建 漳州 联通
中级用户
★★
积分 228
发帖 125
注册 2008-08-25 19:17
17年会员
UID 124135
性别 男
状态 离线
@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

代码比较多.就目前不用第三方程序,似乎没有一行代码可以完成的吧,可能我比较菜
6 发表于 2008-09-17 20:00 ·  中国 浙江 杭州 电信
初级用户
积分 38
发帖 17
注册 2008-09-11 17:07
17年会员
UID 125416
性别 男
状态 离线
谢谢4楼上的朋友..
可是我在测试时输入\CZY\CCX时返回还是\CZY\CCX而不是CZY\CCX

能不能再改改?
7 Re 6楼 发表于 2008-09-17 20:05 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
你在顶楼的提问中,并未提出这个要求。
@echo off
set str=D:\CZY\ czy\cc\ \cc\xx\
if "%str:~-1%" equ "\" set str=%str:~0,-1%
set str=%str:*\=%
8 发表于 2008-09-17 20:06 ·  中国 浙江 杭州 电信
初级用户
积分 38
发帖 17
注册 2008-09-11 17:07
17年会员
UID 125416
性别 男
状态 离线
谢谢五楼的朋友..虽然语句比较多,但测试没发现什么问题...看的我都头大...
9 发表于 2008-09-17 20:09 ·  中国 浙江 杭州 电信
初级用户
积分 38
发帖 17
注册 2008-09-11 17:07
17年会员
UID 125416
性别 男
状态 离线
谢谢两位朋友帮我解决了问题...更感谢HAT提供精炼的语句..闲时再研究研究代码.

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

[ Last edited by lxllxl on 2008-9-17 at 08:15 PM ]
10 发表于 2008-09-17 20:57 ·  中国 浙江 杭州 电信
初级用户
积分 38
发帖 17
注册 2008-09-11 17:07
17年会员
UID 125416
性别 男
状态 离线
7楼提供的语句当CZY\CCX时返回还是CCX而不是CZY\CCX
请HAT再看看..
11 Re 10楼 发表于 2008-09-17 21:02 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
@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%
12 发表于 2008-09-18 12:06 ·  中国 陕西 咸阳 电信
初级用户
积分 38
发帖 17
注册 2008-09-11 17:07
17年会员
UID 125416
性别 男
状态 离线
以上语句在WINDOWS下测试是正确的.可是在纯DOS模式下测试出错了..返回为空.不知道什么原因..应该怎么解决?

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

[ Last edited by lxllxl on 2008-9-18 at 12:30 PM ]
附件
未命名.GIF
13 发表于 2008-09-18 13:37 ·  中国 福建 泉州 电信
银牌会员
★★★
积分 1,276
发帖 469
注册 2002-12-23 13:00
23年会员
UID 586
性别 男
来自 福建泉州
状态 离线
没有写清楚使用坏境,上面的语句是WINNT下的CMD才能用的.纯DOS是不能用的.
QQ:366840202
http://chenall.net
14 发表于 2008-09-18 17:44 ·  中国 浙江 杭州 电信
初级用户
积分 38
发帖 17
注册 2008-09-11 17:07
17年会员
UID 125416
性别 男
状态 离线
那在纯DOS模式下应该怎么实现如题功能?
15 发表于 2008-09-19 17:43 ·  中国 广东 广州 华为云
初级用户
积分 38
发帖 17
注册 2008-09-11 17:07
17年会员
UID 125416
性别 男
状态 离线
使用外部命令STRINGS已解决。。
论坛跳转: