Board logo

标题: [其他] [已解决]批处理start命令最后的参数列表中有空格怎么办? [打印本页]

作者: MantisLin    时间: 2010-12-12 12:43     标题: [已解决]批处理start命令最后的参数列表中有空格怎么办?

  举一个例子:我在D:下建立一个test.bat文件。里面这样书写:
echo off & cls
echo.%1
echo.%2
pause
exit

  然后打开命令行,输入这样的命令:
start "" D:\test.bat" abc def
  如此一来,就会打印出这样的结果:
abc
def

  这都没什么问题。不过接着,重点来了!
  如果我想要让“a bc”作为参数1(注意:a和bc中间有个空格!),“bcd”作为参数2,打印出来的话,怎么办呢?我试过如下命令:
一、start "" "D:\test.bat" a bc def
  打印出来是:
a
bc

二、start "" "D:\test.bat" "a bc" "def"
  打印出来是错误提示:
'test.bat"  "a' 不是内部或外部命令,也不是可运行的程序或批处理文件。

  我自己尝试了N次、又上网找来找去都没找到答案,希望在这里可以得到解答!
  不要跟我分析上面的代码,除了那个出错的以外,其他的结果是如何得出来的我都非常清楚。
  说到底这是一个格式问题,我只想知道当那最后的参数中有空格的时候的格式。

  发了半个多小时不见解答……
  一个多小时了,继续等待高手……


[ 本帖最后由 MantisLin 于 2010-12-13 10:38 编辑 ]
作者: yangfengoo    时间: 2010-12-12 15:00

start "" D:\test.bat "a bc" "def"
作者: MantisLin    时间: 2010-12-12 15:54


  感谢二楼!等了这么久终于有人回复了,而且方法可行。
  但是有个小细节,就是这样打印出来的话,双引号也会被打印出来。
  不过也容易解决,把test.bat的内容修改一下就行了,下面是新的test.bat的代码:

echo off & cls
set a=%1
echo.%a:~1,-1%
set a=%2
echo.%a:~1,-1%
pause
exit


作者: hanyeguxing    时间: 2010-12-12 16:06

%~1和%~2
扩展参数~~
作者: sky21124    时间: 2010-12-12 16:50

菜鸟表示没看懂。。。
作者: MantisLin    时间: 2010-12-12 17:22     标题: 回复 4楼 的帖子

呃——说起来也是,用%~1、%~2比较方便点!
=_=!!!
作者: wc726842270    时间: 2010-12-13 23:54

LZ似乎对空格这个键有些不太了解(主要在P方面),一般情况下调用含有空格的字符串都需要引号(例如,调用路径,start "" "%userprofile%"\桌面)

[ 本帖最后由 wc726842270 于 2010-12-13 23:56 编辑 ]
作者: Hello123World    时间: 2010-12-17 14:52

而且一定要是英文引号




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2