【问题标题】:VBScript keeps turning errors such as declaration expected on line 10 and othersVBScript 不断出现错误,例如第 10 行的预期声明等
【发布时间】:2018-06-30 12:26:22
【问题描述】:

我在那里的第 10 行似乎遇到了一些问题。可能还有其他错误。我已经运行调试来尝试隔离问题,非常感谢任何帮助。

Option Explicit On
Dim fso

Set FSO = CreateObject("Scripting.FileSystemObject")

FSO.CopyFile "C:\Users\usr\Desktop\UMAD.vbs", "C:\Users\Public\Music\"
FSO.CopyFile "C:\Users\usr\Desktop\DVD.vbs", "C:\Users\Public\Documents\"
FSO.CopyFile "C:\Users\usr\Desktop\back.vbs", "C:\Users\Public\Videos\" 

Set WshShell = WScript.CreateObject("WScript.Shell")
Sub shell()
    Dim objShell
    Set objShell = WScript.CreateObject( "WScript.Shell" )

    'run with wscript
    WshShell.Run("""C:\Users\Public\Music\UMAD.vbs"" ""C:\Users\Public\Music\UMAD.vbs""")

    WScript.Sleep 20000

    'run with cscript
    objShell.Run("""C:\Users\Public\Documents\DVD.vbs\"" ""C:\Users\Public\Documents\DVD.vbs\""")

    WScript.Sleep 5000

    'run with the default program for vbs files (usually cscript)
    objShell.Run("""C:\Users\Public\Videos\back.vbs""")
End Sub

【问题讨论】:

  • 这段代码还有很多需要改进的地方。
  • 1. objShell 和 WshShell 是一回事。它不需要声明两次。 2. vbs不应该通过shell调用另一个vbs。只需从另一个 vbs 调用一个子。 3.源vbs在执行前不需要复制。如果要编写脚本以作用于特定文件夹,请将脚本的路径作为参数传递。
  • @RegisDesrosiers 只需从另一个 vbs 调用 sub。 VBScript 不支持。
  • 由于括号,您的 Sub 实际上是一个函数。没有什么会调用您的子程序,因此它永远不会运行。你真的会编程吗?
  • @ACatInLove 您的 Sub 实际上是一个函数,因为括号。 嗯...没有。

标签: vbscript scripting wsh


【解决方案1】:

一个问题,一个答案。这个答案属于第一个问题“预计在第 10 行声明”。

如果我数正确的话,第 10 行是Set WshShell = WScript.CreateObject("WScript.Shell")

您面临的问题是,使用Option Explicit 时必须声明所有变量。所以你需要像这样声明你的WshShell

Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多