卸载以前的安装(我使用 InstallShield 2009 构建的)时,我想删除程序在卸载结束时所在的整个文件夹。我无法弄清楚如何使用自定义 Aaction 来做到这一点,因此使用下面的代码,我决定在安装开始后立即删除该文件。如果程序已经安装,这可以正常工作……但如果之前没有安装,它会抛出错误 1701,因为显然,该文件夹不存在!我不知道如何解决这个问题,而且我几乎不知道 VBScript。我开始尝试捕获错误以掩盖错误,但显然 VBScript 中不存在。
Dim fso, Folder2Delete
Folder2Delete = "C:\Program Files\MyProgramDir"
Set fso = CreateObject("Scripting.FileSystemObject")
fso.DeleteFolder(Folder2Delete)
Run Code Online (Sandbox Code Playgroud)
那么,如何将自定义操作粘贴到 InstallShield 中的卸载中,或者如何将 VB 脚本设置为仅删除存在的文件?或者最后一搏,我怎样才能让它在它不存在时不显示错误......?
非常感谢,这让我发疯了!
我有 2 个 vbs 文件。
A.vbs:
Class test
public a
public b
End Class
Run Code Online (Sandbox Code Playgroud)
B.vbs:
Dim objShell
Set objShell = Wscript.CreateObject("WScript.Shell")
objShell.Run "C:\Users\shanmugavel.chinnago\Desktop\Test3.vbs"
Dim ins
Set ins = new test 'Here throws "Class not defined: test"
ins.a = 10
ins.b = "SCS"
msgbox ins.a
msgbox ins.b
Run Code Online (Sandbox Code Playgroud)
现在我想在 B.vbs 文件中实现这个。但是在为 A.vbs 中可用的类创建实例时会引发错误。有什么帮助吗?
我正在尝试在以管理员身份执行的 VBScript 中设置计划任务。正如我所看到的,该脚本设置任务没有问题,但它不会执行,因为它是使用参数创建的run only when user is logged on。
代码如下:
Set objShell=Wscript.CreateObject("Wscript.Shell")
command= windir&"\system32\schtasks.exe /create /sc minute /mo "&minutes&" /tn "&APPNAME&" /f /tr ""C:\Windows\System32\wscript.exe '"&getAplicationPath&"\"&wscript.ScriptName&"' cron "
objShell.Run command,0, false
Run Code Online (Sandbox Code Playgroud)
我无法在 msdn.microsoft.com 或 Google 搜索中找到必须设置以禁用该选项的参数。
在 VBScript 中,如何将 Test1_QTP 文件夹名称与以下路径分开。我需要将“Test1_QTP”字符串提取到变量中。
C:\TeamTask\Automation\Daily\EB\20140508\Test1_QTP
Run Code Online (Sandbox Code Playgroud)
任何建议表示赞赏。
这似乎是一个非常基本的问题,但我仍然找不到答案。
在 VBScript 中,使用 Dim 语句多次声明相同的标量变量有什么害处吗?
我正在从事一些相关项目并开发一些我想重用的代码片段。但是,我有点担心使用两次使用相同变量名的代码是否存在问题,如下所示:
Dim i
for i = 1 to Count
'* doin' somethin' here
next
Dim i
for i = 1 to UnrelatedOtherCount
'* doin' somethin' different yo
next
Run Code Online (Sandbox Code Playgroud)
它不仅仅是迭代循环变量;我可能在脚本中有多个地方使用了正则表达式。如果我的脚本使用了两段重复使用的代码,并且每一段都使用一个“patternString”变量并首先声明变量:
'* first section of code from the folder
Dim objPersonRegex, patternString
Set objPersonRegex = new RegExp
...
'* a completely different section of code
Dim objBuildingRegex, patternString
Set objBuildingRegex = new RegExp
Run Code Online (Sandbox Code Playgroud)
我的直觉是,这不应该是一个问题,Dim 只是创建一个给定名称的变量(如果它尚不存在),如果存在,则继续,因为它被告知要做的事情已经完成了。但事实真的是这样吗?如果重要的话,这些是在 Windows Script Host 上运行的脚本。
(为了澄清我所担心的事情,我根本不担心变量的值被破坏。如果我需要保留变量的值,我会将其保存在另一个变量中,一个 …
我对 bash 或 vbs 知之甚少。我正在尝试制作一个脚本,该脚本将自动解压缩名为“dungeon.zip”的 zip,其中包含我编写的一个小游戏。我想将其解压缩到 zip 文件所在目录中的一个名为 dungeon 的文件夹中。我使用了此答案中的代码,并将这些文件替换为我的文件:
strZipFile = "dungeon.zip"
strUnzipped = "dungeon\"
Sub UnZip(ExtractTo,ZipFile)
Set fso = CreateObject("Scripting.FileSystemObject")
If NOT fso.FolderExists(ExtractTo) Then
fso.CreateFolder(ExtractTo)
End If
Set objShell = CreateObject("Shell.Application")
Set FilesInZip=objShell.NameSpace(ZipFile).items
ObjShell.NameSpace(ExtractTo).CopyHere(FilesInZip)
Set fso = Nothing
Set objShell = Nothing
End Sub
set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("MyDocuments")
strZipPath = strDesktop & strZipFile
strUnzipPath = strDesktop & strUnzipped
UnZip strUnzipPath , strZipPath
Run Code Online (Sandbox Code Playgroud)
正如他的回答一样,我从 cmd 文件运行 .vbs:
cscript UnzipZip.vbs
Run Code Online (Sandbox Code Playgroud)
这是错误:
C:\Users\Brett\Downloads\UnzipZip.vbs(12, 1) Microsoft VBScript …Run Code Online (Sandbox Code Playgroud) 为什么这个 .vbs 脚本检索空值?
Option Explicit
On Error Resume Next
Dim h: Set h = CreateObject("MSXML2.XMLHTTP")
h.Open "HEAD", "http://google.com/", False
h.send
Dim GetLocation: Set GetLocation = h.getResponseHeader("Location")
MsgBox GetLocation
Run Code Online (Sandbox Code Playgroud) 我这里有一个 VBScript 来“切换”我的网络适配器(根据在 Internet 上找到的脚本构建)。
我想知道是否有人可以帮助我将其转换为可以“重置”(禁用,然后重新启用)我的无线适配器的脚本,而不是切换它。
'~ Toggle a SPECIFIED NIC on or off
Option Explicit
Const NETWORK_CONNECTIONS = &H31&
Dim objShell, objFolder, objFolderItem, objEnable, objDisable
Dim folder_Object, target_NIC
Dim NIC, clsVerb
Dim str_NIC_Name, strEnable, strDisable
Dim bEnabled, bDisabled
'NIC name goes here VVV
str_NIC_Name = "Wi-Fi"
strEnable = "En&able"
strDisable = "Disa&ble"
' create objects and get items
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(NETWORK_CONNECTIONS)
Set objFolderItem = objFolder.Self
Set folder_Object = objFolderItem.GetFolder
Set target_NIC = Nothing
' …Run Code Online (Sandbox Code Playgroud) 使用库将 json 字符串解析为经典 asp 的最佳方法是什么?
Dim jsonString
jsonString = {"date":"4/28/2017","custType":"100","vehicle":"1"}
Run Code Online (Sandbox Code Playgroud)
想拥有
response.write("<li> date :" & json("date") & "</li>")
Run Code Online (Sandbox Code Playgroud) 假设我想从 R 运行一个 VBS 脚本,并且想将一个值从 R 传递到该脚本。
例如,在一个名为“Msg_Script.vbs”的简单文件中,我有以下代码:
Dim Msg_Text
Msg_Text = "[Insert Text Here]"
MsgBox("Hello " & Msg_Text)
Run Code Online (Sandbox Code Playgroud)
如何使用 R 运行此脚本,同时在 R 中编辑参数和/或变量?例如,在上面的脚本中,我将如何编辑Msg_Text变量的值?