[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[技术讨论] vbs如何判断是否能执行网络共享文件夹里的程序并根据不同的系统版本执行不同操作

本帖最后由 pcl_test 于 2016-11-12 08:13 编辑

如何VBS实现几个小功能
手上有一段代码想加几个功能上去··
  1. on Error Resume Next
  2. Dim wshshell
  3. Set wshshell = WScript.CreateObject("WScript.Shell")
  4.    wshshell.run "\\192.168.30.222\run$\tool\computerexe.bat",0,true   
  5.    Wscript.Sleep 5000
  6.    wshshell.run "C:\Program Files (x86)\Hintsoft\PubwinClient\update.exe",0
  7. wscript.quit
复制代码
1.代码优先运行第一段执行代码,运行网络批处理,网络批处理可访问的话就不继续往下运行了,因为东西通过网络批处理调用了,网络文件不可访问的话就继续往下运行脚本

2.VBS脚本自判断系统是XP系统 或者WIN7 64位系统

WIN7 64位系统的话就运行C:\Program Files (x86)\Hintsoft\PubwinClient\update.exe
XP 系统的话就运行 C:\Program Files\Hintsoft\PubwinClient\update.exe

由于自己不太懂,只能发帖求助了。

1

评分人数

  1. if 存在 "\\192.168.30.222\run$\tool\computerexe.bat" then
  2.     run "\\192.168.30.222\run$\tool\computerexe.bat"
  3. else
  4.     if 存在 "C:\Program Files (x86)\Hintsoft\PubwinClient\update.exe" then
  5.        run "C:\Program Files (x86)\Hintsoft\PubwinClient\update.exe"
  6.     else
  7.       run "C:\Program Files\Hintsoft\PubwinClient\update.exe"
  8.     end if
  9. end if
复制代码

TOP

回复 2# pcl_test


    这个我刚测试VBS脚本报错了..是不是哪里有问题?

行1
字符4
错误 无效字符
代码 800a0408
源 microsoft vbscript 编译器错误

TOP

回复 3# qq3475534

2楼的是伪代码,自行改为vbs代码

TOP

本帖最后由 qq3475534 于 2016-11-12 11:34 编辑

回复 4# pcl_test
  1. on Error Resume Next
  2. Dim wshshell
  3. Set wshshell = WScript.CreateObject("WScript.Shell")
  4.    if "\\192.168.30.222\run$\tool\computerexe.bat" then
  5.     run "\\192.168.30.222\run$\tool\computerexe.bat"
  6. else
  7.     if "C:\Program Files (x86)\Hintsoft\PubwinClient\update.exe" then
  8.    Wscript.Sleep 5000
  9.        run "C:\Program Files (x86)\Hintsoft\PubwinClient\update.exe"
  10.     else
  11.    Wscript.Sleep 5000
  12.       run "C:\Windows\System32\cmd.exe"
  13.     end if
  14. end if
  15. wscript.quit
复制代码
你好版主,我改成这样,运行是不会报错了,但是测试起来实际文件没有被调用,

没有被执行,而且我想判断共享那个文件,有的话就调用共享的那个文件,不继续执行下一步命令,

没有的话就继续下一步,但是需要延时5秒,在执行
我测试的是cmd.exe,实际没被调用,估计代码哪里还有错误。

TOP

回复 5# qq3475534
把on Error Resume Next去掉就看得见报错了

TOP

回复 6# pcl_test


    你好版主能否提供一段完整不报错的脚本,我不太懂这些,麻烦了。

TOP

  1. Dim wso, fso, s1, s2, s3
  2. Set wso = CreateObject("WScript.Shell")
  3. Set fso = CreateObject("Scripting.FileSystemObject")
  4. s1 = "\\192.168.30.222\run$\tool\computerexe.bat"
  5. s2 = "C:\Program Files\Hintsoft\PubwinClient\update.exe"
  6. s3= "C:\Program Files (x86)\Hintsoft\PubwinClient\update.exe"
  7. If fso.FileExists(s1) Then
  8. wso.Run s1
  9. ElseIf fso.FileExists(s2) Then
  10. wso.Run s2
  11. ElseIf fso.FileExists(s3) Then
  12. wso.Run s3
  13. End If
  14. Msgbox "Done!", vbInformation, WScript.ScriptName
复制代码
『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

本帖最后由 qq3475534 于 2016-11-12 12:15 编辑

回复 8# yu2n


    你好,你的代码我刚测试起来会报错,运行几秒后

行 15
字符 2
代码 80070002
源 (NULL)

TOP

本帖最后由 yu2n 于 2016-11-12 19:51 编辑

回复 9# qq3475534
  1. Dim wso, fso, s1, s2, s3
  2. Set wso = CreateObject("WScript.Shell")
  3. Set fso = CreateObject("Scripting.FileSystemObject")
  4. s1 = "\\192.168.30.222\run$\tool\computerexe.bat"
  5. s2 = "C:\Program Files\Hintsoft\PubwinClient\update.exe"
  6. s3= "C:\Program Files (x86)\Hintsoft\PubwinClient\update.exe"
  7. If fso.FileExists(s1) Then
  8. wso.Run """" & s1 & """"
  9. ElseIf fso.FileExists(s2) Then
  10. wso.Run """" & s2 & """"
  11. ElseIf fso.FileExists(s3) Then
  12. wso.Run """" & s3 & """"
  13. End If
  14. Msgbox "Done!", vbInformation, WScript.ScriptName
复制代码
『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

返回列表