netmjwork 发表于 2016-6-8 17:03:12

.vbs、.cmd 连续调用造成无法运行,现在希望将 .cmd转换成.vbe来运行,如何实现?

本帖最后由 netmjwork 于 2016-6-9 10:09 编辑

.vbs、.cmd 连续调用造成无法运行,现在希望将 .cmd转换成.vbs来运行,如何实现?

运行过程: 1.vbs调用 go.cmd,go.cmd调用另一个 win8.vbs,运行结果是提示“win8.vbs不是内部或外部命令,也不是可执行程序……”
(因为这个调用过程中批处理无法调用.vbs文件,所以想直接转换成.vbs来使用,将 go.cmd 判断系统的功能合并到1.vbe 中来使用)

go.cmd 的内容:
@echo off
ver|find "10.0." >nul&&set "v=win10"
if exist "%systemroot%\syswow64" (set "w=x64") else (set "w=x32")
goto %v%%w% 2>nul||echo 未定义的系统&ping -n 2 0 >nul&exit

#这个通过go.cmd可以调用win8.vbs;   
但是通过1.vbs调用go.cmd之后再通过go.cmd连续调用win8.vbs就报错了
:win10x32
win8.vbe

问题找到了,就是路径的问题:我的1.vbs和go.cmd不在同一个目录,所以造成无法识别!                                 

          当不在同一个目录时,就要将参数的详细路径加上才能正常运行!

dos时代菜鸟 发表于 2016-6-8 18:49:13

vbe 不等于 vbs
Vbe 是 office 的 vb 脚本扩展。
vbs 是 操作系统 的脚本,由 wscript.exe 解析运行。

2012duanyongli 发表于 2016-6-8 22:02:08

这么简单的一个问题,让你搞得那么复杂。。。
win8.vbe无法调用,说明win8.vbe所在的路径无法被识别。
你只需要解决让win8.vbe的路径合法化。

slore 发表于 2016-6-9 09:24:26

本帖最后由 slore 于 2016-6-9 09:35 编辑

学会定位问题。

vbe不过是微软提供的加密版vbs和vbs本质上没啥区别(解密工具网上也有,意义不大)

改成win.8.vbs是否可以运行?
不是内部或外部命令,一般是路径不对,或者文件执行关联不对。
调用前输出下环境变量echo %cd%看看是不是win8.vbe的所在目录。

单独在写个 win8.vbe(WSH.echo "hello world"的测试脚本)的调用cmd看看是否可以执行。
如果也不能和连续调用就关系,就是关联不正确,这样的话,
显式调用解释器来运行。
wscript.exe win8.vbe
或者
cscript.exe win8.vbe

netmjwork 发表于 2016-6-9 09:30:16

本帖最后由 netmjwork 于 2016-6-9 10:07 编辑

2012duanyongli 发表于 2016-6-8 22:02
这么简单的一个问题,让你搞得那么复杂。。。
win8.vbe无法调用,说明win8.vbe所在的路径无法被识别。
你 ...

谢谢!已经解决,就是路径问题……

netmjwork 发表于 2016-6-9 09:33:01

本帖最后由 netmjwork 于 2016-6-9 10:08 编辑

dos时代菜鸟 发表于 2016-6-8 18:49
vbe 不等于 vbs
Vbe 是 office 的 vb 脚本扩展。
vbs 是 操作系统 的脚本,由 wscript.exe 解析运行。

多谢指点!还是路径的问题……

netmjwork 发表于 2016-6-9 10:06:50

slore 发表于 2016-6-9 09:24
学会定位问题。

vbe不过是微软提供的加密版vbs和vbs本质上没啥区别(解密工具网上也有,意义不大)


多谢指点,刚学习vbs,看别人用后缀vbe就沿用名称了……
问题出在我 1.vbs和 go.cmd 不在同一个目录,go.cmd和win8.vbs在同一个目录所以可以调用,但用1.vbs就不行了

slore 发表于 2016-6-9 12:30:41

缺省不写路径会使用工作目录,你从1.vbs调用的,所以路径就到1.vbs所在路径了,
在批处理中可以通过 %~dp0得到go.cmd所在路径,所以可以:
:win10x32
"%~dp0\win8.vbs"

netmjwork 发表于 2016-6-10 10:49:34

slore 发表于 2016-6-9 12:30
缺省不写路径会使用工作目录,你从1.vbs调用的,所以路径就到1.vbs所在路径了,
在批处理中可以通过 %~dp0 ...

多谢指点!
这个相对路径的方法好~

netmjwork 发表于 2016-6-10 11:33:34

本帖最后由 netmjwork 于 2016-6-10 23:14 编辑

slore 发表于 2016-6-9 12:30
缺省不写路径会使用工作目录,你从1.vbs调用的,所以路径就到1.vbs所在路径了,
在批处理中可以通过 %~dp0 ...

已解决,还是路径的问题…………

netmjwork 发表于 2016-6-10 11:54:24

本帖最后由 netmjwork 于 2016-6-10 23:15 编辑

slore 发表于 2016-6-9 09:24
学会定位问题。

vbe不过是微软提供的加密版vbs和vbs本质上没啥区别(解密工具网上也有,意义不大)


已解决,还是路径的问题…………
谢谢!
页: [1]
查看完整版本: .vbs、.cmd 连续调用造成无法运行,现在希望将 .cmd转换成.vbe来运行,如何实现?