[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] [已解决]批处理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 编辑 ]
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

start "" D:\test.bat "a bc" "def"
1

评分人数

    • MantisLin:   在98个浏览了此帖的人中只有他回复了正 ...技术 + 1

TOP


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

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

TOP

%~1和%~2
扩展参数~~
1

评分人数

寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

菜鸟表示没看懂。。。

TOP

回复 4楼 的帖子

呃——说起来也是,用%~1、%~2比较方便点!
=_=!!!

TOP

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

[ 本帖最后由 wc726842270 于 2010-12-13 23:56 编辑 ]

TOP

而且一定要是英文引号

TOP

返回列表