标题:
[其他]
[已解决]批处理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