标题: 请写一个批处理语句:删除路径字符串中的指定字符
[打印本页]
作者: lxllxl
时间: 2008-9-17 19:04
标题: 请写一个批处理语句:删除路径字符串中的指定字符
有一个可变路径字符,要求对该路径做如下处理:
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 ]
作者: hackate
时间: 2008-9-17 19:12
楼主的意思实在难于琢磨..不知道具体是要怎么操作..
你是要在程序里随时获取当前路径,然后对当前路径进行如上说的样操作呢.
还是路径保存在某文件里面,要提取操作..具体真不知道你要怎么处理.请表明白.
作者: lxllxl
时间: 2008-9-17 19:25
路径赋予一个环境变量,只要写出对该变量的处理语句就行了。
Last edited by lxllxl on 2008-9-17 at 07:27 PM ]
作者: HAT
时间: 2008-9-17 19:55
@echo off
set str=D:\CZY\ czy\cc\ \cc\xx\
if "%str:~-1%" equ "\" set str=%str:~0,-1%
set str=%str:*:\=%
作者: hackate
时间: 2008-9-17 19:58
@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
代码比较多.就目前不用第三方程序,似乎没有一行代码可以完成的吧,可能我比较菜
作者: lxllxl
时间: 2008-9-17 20:00
谢谢4楼上的朋友..
可是我在测试时输入\CZY\CCX时返回还是\CZY\CCX而不是CZY\CCX
能不能再改改?
作者: HAT
时间: 2008-9-17 20:05
标题: Re 6楼
你在顶楼的提问中,并未提出这个要求。
@echo off
set str=D:\CZY\ czy\cc\ \cc\xx\
if "%str:~-1%" equ "\" set str=%str:~0,-1%
set str=%str:*\=%
作者: lxllxl
时间: 2008-9-17 20:06
谢谢五楼的朋友..虽然语句比较多,但测试没发现什么问题...看的我都头大...
作者: lxllxl
时间: 2008-9-17 20:09
谢谢两位朋友帮我解决了问题...更感谢HAT提供精炼的语句..闲时再研究研究代码.<img src="images/smilies/face-wink.png" align="absmiddle" border="0"><img src="images/smilies/face-wink.png" align="absmiddle" border="0">
HAT..HAT...你是我的偶像
Last edited by lxllxl on 2008-9-17 at 08:15 PM ]
作者: lxllxl
时间: 2008-9-17 20:57
7楼提供的语句当CZY\CCX时返回还是CCX而不是CZY\CCX
请HAT再看看..
作者: HAT
时间: 2008-9-17 21:02
标题: 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%
作者: lxllxl
时间: 2008-9-18 12:06
以上语句在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 KiB,下载次数: 1)
作者: chenall
时间: 2008-9-18 13:37
没有写清楚使用坏境,上面的语句是WINNT下的CMD才能用的.纯DOS是不能用的.
作者: lxllxl
时间: 2008-9-18 17:44
那在纯DOS模式下应该怎么实现如题功能?
作者: lxllxl
时间: 2008-9-19 17:43
使用外部命令STRINGS已解决。。