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

[问题求助] 【已解决】求解vbs直接双击执行正常,使用任务计划执行则报错是什么原因

本帖最后由 Tianorder 于 2016-8-16 10:19 编辑

双击运行时无错,而windows计划任务出错
开始时,我使用了
  1. do
  2. Loop while ReadFile.atendofstream <> true
复制代码
这个双击不会报错,而用windows计划任务执行时,会报错“输入超出了文件尾”。

我改成这个,计划任务就可以顺利执行了。
  1. Do While not ReadFile.AtEndOfStream
  2. Loop
复制代码
但是,之后,计时任务报错“类型不匹配:'UBound'”,但是双击时并不报错。
代码是
  1. for i = 0 to UBound(arrDest)
复制代码
我想,应该不是类型之类的问题,而是windosw计划任务解释器的问题。
我想问的是,windows计划任务解析VBS文件,用的是哪个解释器?相关的教程地址是?
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2
您好

回复 2# codegay


    但是...报错并不是路径的错呀
您好

TOP

本帖最后由 Tianorder 于 2016-8-15 15:10 编辑

回复 4# yu2n
  1. Set fso = CreateObject("Scripting.FileSystemObject")
  2. Set ReadFile = fso.OpenTextFile("config.ini", 1, True)
  3. boolErr = false
  4. i = 0
  5. '循环文件,放入数组
  6. Do   
  7. cha = ReadFile.ReadLine
  8. if  Left(cha, 1) <> ";" and Left(cha, 1) <> "[" and cha <> "" Then
  9. ReDim Preserve arrDest(i + 1)
  10. arrDest(i) = cha
  11. i = i + 1
  12. End if
  13. Loop while ReadFile.atendofstream <> true
  14. x = ""
  15. count = UBound(arrDest)
  16. for i = 0 to count
  17. x = x & vbCrLf & arrDest(i)
  18. Next
  19. msgbox x
  20. ReadFile.Close
  21. Set fso = nothing
复制代码
我觉得并不是代码的错,就如1L所言,双击时是不会有问题的,但win计划任务会报错“输入超出了文件尾”。
把 while ReadFile.atendofstream <> true 放到do后面时,不会出现这个错误,但是会出现Ubound的错误。
把 while ReadFile.atendofstream <> true 放到do后面、不使用Ubound时,计划任务可以正常执行。
您好

TOP

回复  Tianorder

数组序号是从 0 开始,第 9 行建议应该这样写:参照你的思路,看看以下代码是否可行:
yu2n 发表于 2016-8-15 19:20



  呃,实际上我已想出可行的方案。
现在就是想知道原因,为什么这样不行。
是因为Windows计划任务的解释器不一样吗?

你写的这段脚本也是“输出超出了文件尾”,当然,双击是没有错误的。
您好

TOP

回复 8# yu2n


    计划任务可以运行本代码。

我再思考下。谢了。
您好

TOP

返回列表