无忧启动论坛

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

求教sc create需要多双引号表示字符串无法执行的问题

[复制链接]
跳转到指定楼层
1#
发表于 2011-11-12 19:01:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这两天在研究绿化vmware8,vmware8的vmci服务用vmware7的方式创建怎么都无法启动,还有这个多出来的VMwareHostd服务,在批处理写创建一个服务时,遇到这么一个问题,如下:
sc create VMwareHostd binpath= %cd%\vmware-hostd.exe -u "%AllUsersProfile%\Application Data\VMware\hostd\config.xml" type= kernel start= auto depend= VMAuthdService/VMUSBArbService/lanmanworkstation displayname= "VMware Workstation Server"

binpath= %cd%\vmware-hostd.exe -u "%AllUsersProfile%\Application Data\VMware\hostd\config.xml"
这里如果只用一个双引号是要出错的,如果用两个双引号“%cd%\vmware-hostd.exe -u "%AllUsersProfile%\Application Data\VMware\hostd\config.xml"”,也无法创建服务,大家有什么好的方法吗?
2#
发表于 2011-11-12 22:06:43 | 只看该作者
不知道对不对:
set aa="%AllUsersProfile%\Application Data\VMware\hostd\config.xml"
binpath= "%cd%\vmware-hostd.exe -u %aa%"
还有一种可能,是不是binpath= 不支持带参数(-u)的路径?
回复

使用道具 举报

3#
 楼主| 发表于 2011-11-12 23:20:04 | 只看该作者

回复 #2 2011pzn 的帖子

我试过设置变量了,但是嵌套双引号后还是无效,因为命令解析的时候,还是把变量替换回来的,所以还是无效,你可以试试这样创建一下服务,虽然服务无效,但是我们只是测试一下,创建后可以删除掉
su delete就好了
回复

使用道具 举报

4#
发表于 2011-11-13 00:56:27 | 只看该作者
对Vmware命令不熟悉,不知道-u参数代表什么。如果是对vmware进行配置,可不可以在SC CREARE之前先进行配置呢?

直接用binpath= %cd%\vmware-hostd.exe不会出错吧?
回复

使用道具 举报

5#
发表于 2011-11-13 01:35:39 | 只看该作者
网上查了下,“SC 如果命令中需要进行双引号的嵌套,使用反斜杠加引号 " \" " 来进行转义处理。”不知行不行。

binpath= "%cd%\vmware-hostd.exe -u \"%AllUsersProfile%\Application Data\VMware\hostd\config.xml\""

[ 本帖最后由 2011pzn 于 2011-11-13 01:51 编辑 ]
回复

使用道具 举报

6#
 楼主| 发表于 2011-11-13 13:26:19 | 只看该作者

回复 #5 2011pzn 的帖子

这个跟vmware没多大关系,如果我遇到其它软件要创建带参数的服务,那也会遇到这个问题,这个转义有问题,后面的双引号不会写入,转义无效,前面这个转义倒是写入注册表了
回复

使用道具 举报

7#
发表于 2011-11-13 17:53:26 | 只看该作者
binpath后面的参数最外面一层用""表示一个整体 中间的引号用\ 转义
sc create VMwareHostd binpath= “\"%cd%\vmware-hostd.exe\" -u  \"%AllUsersProfile%\Application Data\VMware\hostd\config.xml\"" type= kernel start= auto depend= VMAuthdService/VMUSBArbService/lanmanworkstation displayname= "VMware Workstation Server"
回复

使用道具 举报

8#
发表于 2011-11-13 18:09:26 | 只看该作者
原帖由 ones 于 2011-11-13 13:26 发表
这个跟vmware没多大关系,如果我遇到其它软件要创建带参数的服务,那也会遇到这个问题,这个转义有问题,后面的双引号不会写入,转义无效,前面这个转义倒是写入注册表了



既然是写入注册表的,不如把正确的导出来。然后在下次再运行的时候用批处理再导入注册表即可,一样可以达到静默安装的目的。
回复

使用道具 举报

9#
发表于 2011-11-13 20:41:32 | 只看该作者
后面的双引号怎么会不能写入?


回复

使用道具 举报

10#
 楼主| 发表于 2011-11-14 10:17:13 | 只看该作者
晕,我是用Wsyscheck来查看的,后面确实没有那个双引号,而注册表里是有的,失误,这个工具误导了我
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-16 22:54

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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