无忧启动论坛

标题: 求教sc create需要多双引号表示字符串无法执行的问题 [打印本页]

作者: ones    时间: 2011-11-12 19:01
标题: 求教sc create需要多双引号表示字符串无法执行的问题
这两天在研究绿化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"”,也无法创建服务,大家有什么好的方法吗?
作者: pznpt    时间: 2011-11-12 22:06
不知道对不对:
set aa="%AllUsersProfile%\Application Data\VMware\hostd\config.xml"
binpath= "%cd%\vmware-hostd.exe -u %aa%"
还有一种可能,是不是binpath= 不支持带参数(-u)的路径?
作者: ones    时间: 2011-11-12 23:20
标题: 回复 #2 2011pzn 的帖子
我试过设置变量了,但是嵌套双引号后还是无效,因为命令解析的时候,还是把变量替换回来的,所以还是无效,你可以试试这样创建一下服务,虽然服务无效,但是我们只是测试一下,创建后可以删除掉
su delete就好了
作者: pznpt    时间: 2011-11-13 00:56
对Vmware命令不熟悉,不知道-u参数代表什么。如果是对vmware进行配置,可不可以在SC CREARE之前先进行配置呢?

直接用binpath= %cd%\vmware-hostd.exe不会出错吧?
作者: pznpt    时间: 2011-11-13 01:35
网上查了下,“SC 如果命令中需要进行双引号的嵌套,使用反斜杠加引号 " \" " 来进行转义处理。”不知行不行。

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

[ 本帖最后由 2011pzn 于 2011-11-13 01:51 编辑 ]
作者: ones    时间: 2011-11-13 13:26
标题: 回复 #5 2011pzn 的帖子
这个跟vmware没多大关系,如果我遇到其它软件要创建带参数的服务,那也会遇到这个问题,这个转义有问题,后面的双引号不会写入,转义无效,前面这个转义倒是写入注册表了
作者: jneny    时间: 2011-11-13 17:53
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"
作者: quya    时间: 2011-11-13 18:09
原帖由 ones 于 2011-11-13 13:26 发表
这个跟vmware没多大关系,如果我遇到其它软件要创建带参数的服务,那也会遇到这个问题,这个转义有问题,后面的双引号不会写入,转义无效,前面这个转义倒是写入注册表了



既然是写入注册表的,不如把正确的导出来。然后在下次再运行的时候用批处理再导入注册表即可,一样可以达到静默安装的目的。
作者: pznpt    时间: 2011-11-13 20:41
后面的双引号怎么会不能写入?



作者: ones    时间: 2011-11-14 10:17
晕,我是用Wsyscheck来查看的,后面确实没有那个双引号,而注册表里是有的,失误,这个工具误导了我





欢迎光临 无忧启动论坛 (http://bbs.wuyou.net./) Powered by Discuz! X3.3