无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 5169|回复: 10
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
发表于 2016-6-8 17:03:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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不在同一个目录,所以造成无法识别!                                   

            当不在同一个目录时,就要将参数的详细路径加上才能正常运行!
2#
发表于 2016-6-8 18:49:13 | 只看该作者
vbe 不等于 vbs
Vbe 是 office 的 vb 脚本扩展。
vbs 是 操作系统 的脚本,由 wscript.exe 解析运行。

点评

多谢指点! 那我上面的问题怎么解决呢? #这个无法调用……(如果win8.vbe换成001.exe就可以正常调用,都和go.cmd在同一目录下) :win10x32 win8.vbe  详情 回复 发表于 2016-6-9 09:33
回复

使用道具 举报

3#
发表于 2016-6-8 22:02:08 | 只看该作者
这么简单的一个问题,让你搞得那么复杂。。。
win8.vbe无法调用,说明win8.vbe所在的路径无法被识别。
你只需要解决让win8.vbe的路径合法化。

点评

默认不是用的.cmd批处理当前所在目录吗? 以前用的.exe就可以执行,所以应该不是路径的问题 #如下写法可以执行(001.exe 和go.cmd在同一目录下) :win10x32 001.exe #如下写法就报错了(win8.vbe 和go.cm  详情 回复 发表于 2016-6-9 09:30
回复

使用道具 举报

4#
发表于 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

点评

奇怪了,用1.vbs 调用go.cmd,再通过go.cmd调用 win8.vbs 当win8.vbs内容为(WSH.echo "hello world"的测试脚本)时可以通过1.vbs的调用并正常打开; 但当win8.vbs内容如下时,就提示“系统找不到指定的文件”  详情 回复 发表于 2016-6-10 11:54
多谢指点,刚学习vbs,看别人用后缀vbe就沿用名称了…… 问题出在我 1.vbs和 go.cmd 不在同一个目录,go.cmd和win8.vbs在同一个目录所以可以调用,但用1.vbs就不行了  详情 回复 发表于 2016-6-9 10:06
回复

使用道具 举报

5#
 楼主| 发表于 2016-6-9 09:30:16 | 只看该作者
本帖最后由 netmjwork 于 2016-6-9 10:07 编辑
2012duanyongli 发表于 2016-6-8 22:02
这么简单的一个问题,让你搞得那么复杂。。。
win8.vbe无法调用,说明win8.vbe所在的路径无法被识别。
你 ...


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

使用道具 举报

6#
 楼主| 发表于 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 解析运行。


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

回复

使用道具 举报

7#
 楼主| 发表于 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就不行了
回复

使用道具 举报

8#
发表于 2016-6-9 12:30:41 | 只看该作者
缺省不写路径会使用工作目录,你从1.vbs调用的,所以路径就到1.vbs所在路径了,
在批处理中可以通过 %~dp0得到go.cmd所在路径,所以可以:
:win10x32
"%~dp0\win8.vbs"

点评

这个方法有点儿小问题:对.txt、exe类型支持,但是改成.vbs就还是找不到文件 (同目录的.vbs存在,单独可以运行,但1.vbs调用就还是提示“系统找不到指定的文件”) :win10x32 "%~dp0\win8.vbs" 提示“系统找  详情 回复 发表于 2016-6-10 11:33
多谢指点! 这个相对路径的方法好~  详情 回复 发表于 2016-6-10 10:49
回复

使用道具 举报

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

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

使用道具 举报

10#
 楼主| 发表于 2016-6-10 11:33:34 | 只看该作者
本帖最后由 netmjwork 于 2016-6-10 23:14 编辑
slore 发表于 2016-6-9 12:30
缺省不写路径会使用工作目录,你从1.vbs调用的,所以路径就到1.vbs所在路径了,
在批处理中可以通过 %~dp0 ...


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

使用道具 举报

11#
 楼主| 发表于 2016-6-10 11:54:24 | 只看该作者
本帖最后由 netmjwork 于 2016-6-10 23:15 编辑
slore 发表于 2016-6-9 09:24
学会定位问题。

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


已解决,还是路径的问题…………
谢谢!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-9-23 10:26

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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