Board logo

标题: 如何忽略掉用户输入路径前后的空格? [打印本页]

作者: wingofsea     时间: 2006-11-25 11:46    标题: 如何忽略掉用户输入路径前后的空格?

请教大家:
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 ]
作者: wingofsea     时间: 2006-11-28 06:49
搜索了一下,好像没有这方面的solution,请教大家,谢谢
作者: NaturalJ0     时间: 2006-11-28 21:30
去除前面的空格,可以用 for /f "tokens=1*" 一步搞定,但后面的空格如何不用循环一次去掉还没想到办法。期待高招。
作者: redtek     时间: 2006-11-29 02:17
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:45
因纯dos讨论区,所以 Windows CMD Shell 实现方法发至了:

[探讨][去变量左、右、首尾空格的不同方法……]
http://www.cn-dos.net/forum/view ... 5172&sid=mD79Lj
作者: namejm     时间: 2006-11-29 07:45


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

  如果字符串中间还有空格的话,这个方案会把第二次遇到的所有空格去掉。
作者: asdfq     时间: 2020-5-8 18:09    标题: 来挖坟了,抱歉

新建一个批处理 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]]