中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-02 08:03
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何去掉最后一个路径符号“\" 查看 1,553 回复 6
楼 主 如何去掉最后一个路径符号“\" 发表于 2006-11-06 23:12 ·  中国 重庆 潼南区 电信
初级用户
★★
积分 173
发帖 78
注册 2005-12-30 11:03
20年会员
UID 48199
性别 男
状态 离线
对于输入的如:E:\或E:\ABC\中的最后一个“\“如何去掉让使输入变为E:或E:\ABC。另外如何判断输入最后是否有"\"?
2 发表于 2006-11-08 07:28 ·  中国 北京 朝阳区 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
19年会员
UID 63324
性别 男
状态 离线
你怎么获得的那个用户输入的路径呢?
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
3 发表于 2006-11-08 13:43 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线


@echo off&setlocal ENABLEDELAYEDEXPANSION&ECHO

&set p=%p%#
if "%p:~-2%"=="\#" (echo 路径最后带有"\"符号。 &&echo. && goto :a) else (echo 路径最后没有带"\"符号。&& echo. && pause && goto :eof)

:a
echo 去掉最后的"\"的路径为: !p:%p:~-2%=!
set "ph=!p:%p:~-2%=!"
echo.&echo 你可以直接用%%ph%%调用这个路径。
pause>nul
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
redtek +2 2006-11-08 23:55
4 发表于 2006-11-09 02:08 ·  中国 甘肃 甘南藏族自治州 合作市 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
if "%p:~-2%"=="\#" (echo %P%|sed "s/.$//" |more>temp.txt)
set /p p=<temp.txt
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
redtek +2 2006-11-09 02:33
5 发表于 2006-11-11 05:43 ·  中国 重庆 潼南区 电信
初级用户
★★
积分 173
发帖 78
注册 2005-12-30 11:03
20年会员
UID 48199
性别 男
状态 离线
谢谢vkil、lxmxn
我很菜。请问:"%p:~-2%"=="\#" 和set /p p= 请输入路径:是什么意思?
6 发表于 2006-11-11 07:13 ·  中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  判断最后一个字符是不是\,若是则删除的批处理代码如下:

@echo off
set str=e:\abc\
if "%str:~-1%"=="\" set str=%str:~0,-1%
echo %str%
pause

  更详细的解释请参考这个帖子的10F。通过BAT读取文本的前几个字符
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
redtek +2 2006-11-11 16:54
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
7 发表于 2006-11-11 12:41 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
Originally posted by yanlihua at 2006-11-11 05:43:
谢谢vkil、lxmxn
我很菜。请问:"%p:~-2%"=="\#" 和set /p p= 请输入路径:是什么意思?


  这里的"%p:~-2%"=="\#"是判断变量p最后两个字符是不是为"\#",然后根据判断的结果来执行相应的语句。

  "set /p p=请输入路径"是指让用户输入一串字符,并且把输入的字符串赋值给变量p,同时屏幕显示提示信息"请输入路径"。
论坛跳转: