无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 4791|回复: 14
打印 上一主题 下一主题

[已解决] 关于批处理 start 和空格的问题.

[复制链接]
跳转到指定楼层
1#
发表于 2018-4-9 21:58:58 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 linee 于 2018-4-11 09:35 编辑

如图第四种情形该如何解决?

test.bat 代码:
  1. echo %1
复制代码


PS: 谢谢各位, 现在有了两个解决办法,
      1, 见 8 楼, 把 bat 编译成 exe.
      2, 见14 楼, 程序名用短名.
2#
发表于 2018-4-9 23:12:55 | 只看该作者
你想说啥???

点评

如 1 楼图示, 当 "程序" "参数" 同时有双引号时, 会出错.  详情 回复 发表于 2018-4-10 11:12
回复

使用道具 举报

3#
 楼主| 发表于 2018-4-10 11:12:50 | 只看该作者

如 1 楼图示,
  1. start "" "程序" "参数"
复制代码

当 "程序" "参数" 同时有双引号时, 会出错.

点评

start /wait "" "%ProgramFiles%\7-zip\!Green7z.exe" /ins 一般情况下程序的"运行参数"都是不带双引号的吧?  详情 回复 发表于 2018-4-10 11:22
回复

使用道具 举报

4#
发表于 2018-4-10 11:22:01 | 只看该作者
linee 发表于 2018-4-10 11:12
如 1 楼图示,

当 "程序" "参数" 同时有双引号时, 会出错.

start /wait "" "%ProgramFiles%\7-zip\!Green7z.exe" /ins

一般情况下程序的"运行参数"都是不带双引号的吧?

点评

比如: start "" "一个路径有空格的批处理(处理一个路径有空格的文件名).bat" "一个路径有空格的文件名.txt"  详情 回复 发表于 2018-4-10 12:23
回复

使用道具 举报

5#
 楼主| 发表于 2018-4-10 12:23:40 | 只看该作者
邪恶海盗 发表于 2018-4-10 11:22
start /wait "" "%ProgramFiles%\7-zip\!Green7z.exe" /ins

一般情况下程序的"运行参数"都是不带双引 ...

比如:
start "" "一个路径有空格的批处理(处理一个路径有空格的文件名).bat" "一个路径有空格的文件名.txt"

点评

不了解,我的印象中%好像也可以包空格...  详情 回复 发表于 2018-4-10 15:34
回复

使用道具 举报

6#
发表于 2018-4-10 15:34:59 | 只看该作者
linee 发表于 2018-4-10 12:23
比如:
start "" "一个路径有空格的批处理(处理一个路径有空格的文件名).bat" "一个路径有空格的文件名.t ...

不了解,我的印象中%好像也可以包空格...
回复

使用道具 举报

7#
发表于 2018-4-10 15:53:04 | 只看该作者
cmd 中 start /? 说:

第一个"" 中放 “在窗口标题栏中显示的标题”,如果只是 "" 应该就是标题为 “空” 吧;

至于后面说到的"",路径中如果有空格、中文,加上 "" 为好或是必须的吧!
回复

使用道具 举报

8#
发表于 2018-4-10 15:54:52 | 只看该作者
本帖最后由 plusv 于 2018-4-10 16:15 编辑

以逻辑来说,
写法没错,
应该是 MS 的 Bug.

但是若運行 .EXE 結果是正常.
你网上找 BAT 转 EXE 程序试看看.

点评

的确, 把 bat 转成 exe 就可以了.  详情 回复 发表于 2018-4-10 19:27
回复

使用道具 举报

9#
发表于 2018-4-10 17:20:44 | 只看该作者
start  ""   "命令  参数 "  这种方式

点评

试过了, 这样不行.  详情 回复 发表于 2018-4-10 19:26
回复

使用道具 举报

10#
 楼主| 发表于 2018-4-10 19:26:46 | 只看该作者
yfwang0798 发表于 2018-4-10 17:20
start  ""   "命令  参数 "  这种方式

试过了, 这样不行.
回复

使用道具 举报

11#
 楼主| 发表于 2018-4-10 19:27:41 | 只看该作者
plusv 发表于 2018-4-10 15:54
以逻辑来说,
写法没错,
应该是 MS 的 Bug.

的确, 把 bat 转成 exe 就可以了.
回复

使用道具 举报

12#
发表于 2018-4-10 22:09:07 | 只看该作者
start "" CALL "c:\path with spaces\app.exe" "C:\path parameter\param.exe"

试试这个

点评

这个可以, 但是出来个 cmd 窗口, 用 start 本来就是希望关掉这个 cmd 窗口的.  详情 回复 发表于 2018-4-10 22:56
回复

使用道具 举报

13#
 楼主| 发表于 2018-4-10 22:56:08 | 只看该作者
yfwang0798 发表于 2018-4-10 22:09
start "" CALL "c:\path with spaces\app.exe" "C:\path parameter\param.exe"

试试这个

这个可以, 但是出来个 cmd 窗口, 用 start 本来就是希望关掉这个 cmd 窗口的.
回复

使用道具 举报

14#
发表于 2018-4-11 00:05:22 来自手机 | 只看该作者
pushd切空格路径或者程序路径用DOT83短名。

点评

pushd 不会用, 程序路径用短名可以.  详情 回复 发表于 2018-4-11 09:23
回复

使用道具 举报

15#
 楼主| 发表于 2018-4-11 09:23:51 | 只看该作者
slore 发表于 2018-4-11 00:05
pushd切空格路径或者程序路径用DOT83短名。

pushd 不会用, 程序路径用短名可以.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-27 23:44

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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