如何使我的脚本可移植 vbs
how to make my scripts portable vbs
这将是一个菜鸟问题..但我想让我的脚本更便携。
比方说,我已经在 USB 中编写了我所有的 .vbs(或任何自然代码中的任何脚本)。
所以我想 运行 当前机器上的 vbs。 USB 被分配到 F: drive
然而,当我拔下 USB 并连接到另一台机器时..它将不再是 F:..但它可能是 E: G: 或其他任何东西
我只是想知道如何在不直接在脚本上更改它的情况下克服它,但脚本能够读取它指向的目录。
我不确定 property/functionality 是如何调用的。
但会感激任何 hints/tips
有两种主要方法可以让您的脚本更具可移植性。
第一个,也可能是最适合您的用例的方法是检查您的可执行文件 运行 在哪个驱动器上,方法是使用 WScript.ScriptFullName
并获取前三个字符以查找驱动器号.您也可以将脚本名称 (WScript.ScriptName
) 从末尾截掉以找到当前工作目录。将其分配给一个变量,并在您指定路径的代码中的任何地方使用它。
Dim fullname : fullname = WScript.ScriptFullName
Dim drive : drive = Mid(fullname, 1, 3)
Dim path : path = Mid(fullname, 1, Len(fullname) - Len(WScript.ScriptName))
WScript.Echo "Drive = " & drive & vbcrlf & "Path = " & path
另一种方法是让您的脚本期望来自用户的 run-time arguments,这样您就可以准确指定您想要执行操作的位置。
' Make a shortcut to your script and add a parameter,
' Or run from the command prompt with an additional parameter.
If WScript.Arguments.Length = 0 Then
WScript.Echo "No arguments supplied!"
WScript.Quit
End If
WScript.Echo WScript.Arguments(0)
希望对您有所帮助!
这将是一个菜鸟问题..但我想让我的脚本更便携。 比方说,我已经在 USB 中编写了我所有的 .vbs(或任何自然代码中的任何脚本)。 所以我想 运行 当前机器上的 vbs。 USB 被分配到 F: drive
然而,当我拔下 USB 并连接到另一台机器时..它将不再是 F:..但它可能是 E: G: 或其他任何东西
我只是想知道如何在不直接在脚本上更改它的情况下克服它,但脚本能够读取它指向的目录。
我不确定 property/functionality 是如何调用的。
但会感激任何 hints/tips
有两种主要方法可以让您的脚本更具可移植性。
第一个,也可能是最适合您的用例的方法是检查您的可执行文件 运行 在哪个驱动器上,方法是使用 WScript.ScriptFullName
并获取前三个字符以查找驱动器号.您也可以将脚本名称 (WScript.ScriptName
) 从末尾截掉以找到当前工作目录。将其分配给一个变量,并在您指定路径的代码中的任何地方使用它。
Dim fullname : fullname = WScript.ScriptFullName
Dim drive : drive = Mid(fullname, 1, 3)
Dim path : path = Mid(fullname, 1, Len(fullname) - Len(WScript.ScriptName))
WScript.Echo "Drive = " & drive & vbcrlf & "Path = " & path
另一种方法是让您的脚本期望来自用户的 run-time arguments,这样您就可以准确指定您想要执行操作的位置。
' Make a shortcut to your script and add a parameter,
' Or run from the command prompt with an additional parameter.
If WScript.Arguments.Length = 0 Then
WScript.Echo "No arguments supplied!"
WScript.Quit
End If
WScript.Echo WScript.Arguments(0)
希望对您有所帮助!