找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 34868|回复: 7

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

[复制链接]
发表于 2010-12-12 12:43:43 | 显示全部楼层 |阅读模式
  举一个例子:我在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 编辑 ]

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2010-12-12 15:00:00 | 显示全部楼层
start "" D:\test.bat "a bc" "def"

评分

参与人数 1技术 +1 收起 理由
MantisLin + 1   在98个浏览了此帖的人中只有他回复了正 ...

查看全部评分

 楼主| 发表于 2010-12-12 15:54:43 | 显示全部楼层

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

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

发表于 2010-12-12 16:06:22 | 显示全部楼层
%~1和%~2
扩展参数~~

评分

参与人数 1技术 +1 收起 理由
Hello123World + 1 乐于助人

查看全部评分

发表于 2010-12-12 16:50:21 | 显示全部楼层
菜鸟表示没看懂。。。
 楼主| 发表于 2010-12-12 17:22:54 | 显示全部楼层

回复 4楼 的帖子

呃——说起来也是,用%~1、%~2比较方便点!
=_=!!!
发表于 2010-12-13 23:54:19 | 显示全部楼层
LZ似乎对空格这个键有些不太了解(主要在P方面),一般情况下调用含有空格的字符串都需要引号(例如,调用路径,start "" "%userprofile%"\桌面)

[ 本帖最后由 wc726842270 于 2010-12-13 23:56 编辑 ]
发表于 2010-12-17 14:52:19 | 显示全部楼层
而且一定要是英文引号
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 01:07 , Processed in 0.029110 second(s), 12 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表