无忧启动论坛

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

在WIN7命令行下两种方式执行相同的命令为什么结果却不同?

[复制链接]
跳转到指定楼层
1#
发表于 2012-1-15 15:03:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
同样是下面的命令,保存为批处理,但是做成自解压包进行执行,却启动VMUSBArbService服务出错,但是我把它解压出来,在解压目录里双击这个批处理,却又能成功启动VMUSBArbService,这是为什么呢?
还有就是pnputil.exe这个文件,是在system32目录里的,照说批处理在任何目录都可以执行这个命令,但是有时候我修改过批处理命令顺序后,却提示找不到文件,只好把这个命令复制到当前目录来了
这个vmware8的usb服务还没搞定,在64位系统下rundll32却无法在window\inf目录里生成oem*.inf文件,还需要pnputil命令来生成
用start、call命令启动批处理也搞不定

@echo off
set vmbit=
IF "%PROCESSOR_ARCHITECTURE%" neq "x86" set vmbit=64
vnetlib%vmbit%.exe -- install hcmon
if not exist %WinDir%\system32\drivers\hcmon.sys copy /y hcmon.sys %WinDir%\system32\drivers\
vnetlib%vmbit%.exe -- start hcmon
ping -n 3 127.0.0.1 >nul 2>nul
rundll32 setupapi,InstallHinfSection _Install1.NT 128 .\vmusb.inf >nul
ping -n 5 127.0.0.1 >nul 2>nul
sc create VMUSBArbService binpath= "\"%cd%\vmware-usbarbitrator%vmbit%.exe\"" start= auto displayname= "VMware USB Arbitration Service" >nul
ping -n 3 127.0.0.1 >nul 2>nul
net start VMUSBArbService & ping -n 5 127.0.0.1 >nul 2>nul
pnputil.exe -i -a .\vmusb.inf
ping -n 4 127.0.0.1 >nul 2>nul
exit



可能是重定向的问题,64位系统下访问32位程序,会被重定向到SysWOW64\目录下,而非system32\目录下

[ 本帖最后由 ones 于 2012-1-17 18:30 编辑 ]
2#
发表于 2012-1-16 22:12:05 | 只看该作者
Windows 7下最好不要使用相对路径,而改为环境变量,这样可以解决找不到文件的问题(如果还是不行的话用绝对路径)。批处理执行时工作目录为当前目录,而转为exe后执行,批处理的工作目录会变为临时文件夹,所以会有问题,解决办法是,生成exe时设定为解压到当前目录。(其实所谓的批处理转exe工具只是将批处理做成类似于自解压格式的文件,运行时会将批处理解压到临时文件夹,完后删除,是无法真正保护代码的,还可能感染病毒,或者遭人怀疑)
回复

使用道具 举报

3#
发表于 2012-1-16 23:53:46 | 只看该作者
开头改为
@echo off
PUSHD %~dp0
试试
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-17 13:39

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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