中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何忽略掉用户输入路径前后的空格?
作者:
标题: 如何忽略掉用户输入路径前后的空格? 上一主题 | 下一主题
wingofsea
初级用户





积分 124
发帖 34
注册 2006-5-23
状态 离线
『楼 主』:  如何忽略掉用户输入路径前后的空格?

请教大家:
set /p installoc=
set installoc=%installoc:"=%
if NOT EXIST "%installoc%\key.txt" (
echo.
echo."%installoc%" you specified is invalid.
echo.
goto GetPath
)

如上代码,
如何用户输入 "c:\program files\keyApplication            "
那么
"c:\program files\keyApplication            \key.txt"
"             c:\program files\keyApplication\key.txt"
都将被认为invalid。
请教如何去掉用户输入的字符串前后的空格?

[ Last edited by wingofsea on 2006-11-28 at 06:49 AM ]

2006-11-25 11:46
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wingofsea
初级用户





积分 124
发帖 34
注册 2006-5-23
状态 离线
『第 2 楼』:  

搜索了一下,好像没有这方面的solution,请教大家,谢谢

2006-11-28 06:49
查看资料  发短消息 网志   编辑帖子  回复  引用回复
NaturalJ0
银牌会员




积分 1181
发帖 533
注册 2006-8-14
状态 离线
『第 3 楼』:  

去除前面的空格,可以用 for /f "tokens=1*" 一步搞定,但后面的空格如何不用循环一次去掉还没想到办法。期待高招。

   此帖被 +3 点积分     点击查看详情   
评分人:【 redtek 分数: +3  时间:2006-11-29 02:18


2006-11-28 21:30
查看资料  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 4 楼』:  

wingofsea兄1楼代码中的 “set /p installoc=” 是Windows CMD Shell代码,属于非纯DOS内容,
所以光看wingofsea兄贴子上的标题以为是纯DOS实现:)

故经常去 “DOS批处理 & 脚本技术(批处理室)” 交流 “WIN提示符下的各种脚本编写和相关技术……” 的网友没有注意到,
幸好NaturalJ0兄注意到了兄发的贴子是 Windows CMD Shell 相关的批处理内容~:)

DOS学习入门 & 精彩文章 (教学室)
http://www.cn-dos.net/forum/forumdisplay.php?fid=12
(大家可以在这儿学习、交流和分享关于DOS的入门和安装等方面的基础知识和经验,)
(将新手培养成各类DOS高手,以实现共同推广和发展DOS。)



DOS批处理 & 脚本技术(批处理室)
http://www.cn-dos.net/forum/forumdisplay.php?fid=23
(大家可以在这儿讨论关于DOS下的批处理、DOS及WIN提示符下的各种脚本编写和相关技术等方面的问题)



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-11-29 02:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 5 楼』:  

因纯dos讨论区,所以 Windows CMD Shell 实现方法发至了:

[探讨][去变量左、右、首尾空格的不同方法……]
http://www.cn-dos.net/forum/view ... 5172&sid=mD79Lj



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-11-29 02:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by NaturalJ0 at 2006-11-28 08:30:
去除前面的空格,可以用 for /f "tokens=1*" 一步搞定,但后面的空格如何不用循环一次去掉还没想到办法。期待高招。

  如果字符串中间还有空格的话,这个方案会把第二次遇到的所有空格去掉。



尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-11-29 07:45
查看资料  发短消息 网志   编辑帖子  回复  引用回复
asdfq
初级用户





积分 33
发帖 15
注册 2018-12-28
状态 离线
『第 7 楼』:  来挖坟了,抱歉

新建一个批处理 a.bat

set a=%1 %2 %3 %4 %5 %6 %7 %8 %9

原批处理:
...
call a i         Hate              Space        But "I don't      think so".
echo %a%
rem i Hate Space But "I don't      think so".
...
5楼的链接坏了,我想看一眼也不行了。
如果如果有这么瞎输路径的人,没必要那么苛责自己,那是它们的事。

[[i] Last edited by asdfq on 2020-5-8 at 18:15 [/i]]

2020-5-8 18:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: