标签: vbscript

是否可以从浏览器运行VBScript文件(.vbs)?

我有10个.vbs文件并将它们合并到一个.vbs文件即Main.vbs.Now如果我双击main.vbs,我的脚本开始运行.但我正在寻找可以从网络浏览器运行.vbs文件?所以没有人需要去Main.vbs保存的目录并双击它.

我的Main.VBS内容:

Dim oShell : Set oShell = WScript.CreateObject ("WScript.Shell")
Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject")
oShell.CurrentDirectory = FSO.GetFile(Wscript.ScriptFullName).ParentFolder
oShell.run "A.VBS", 1, True
oShell.run "B.VBS", 1, True
oShell.run "C.VBS", 1, True
oShell.run "D.VBS", 1, True
Run Code Online (Sandbox Code Playgroud)

vbscript internet-explorer

4
推荐指数
1
解决办法
3万
查看次数

多次 Dim 变量是否有害?

这似乎是一个非常基本的问题,但我仍然找不到答案。

在 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 上运行的脚本。

(为了澄清我所担心的事情,我根本担心变量的值被破坏。如果我需要保留变量的值,我会将其保存在另一个变量中,一个 …

vbscript wsh

4
推荐指数
1
解决办法
1776
查看次数

VBS 解压缩 - 需要对象:'objshell.NameSpace(...)'

我对 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)

vbscript zip cmd unzip

4
推荐指数
1
解决办法
1万
查看次数

如何在VBScript中获取http响应头

为什么这个 .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 header xmlhttprequest

4
推荐指数
1
解决办法
1万
查看次数

如何在此SSRS表达式中"指定数据集聚合"?

我的SSRS报告中需要一个行值,该值是基于报告中已经使用的几个字段计算出来的.我希望它显示在名为'textboxPercentageValue'的文本框中.在半简单英语中,表达式/公式为:

If the value of the "Week" field is "WK1", display the value of the Variance field divided by the value of the Price field; otherwise, just display the value from the Variance field.
Run Code Online (Sandbox Code Playgroud)

在VB脚本gobbledygook中,我添加到textboxPercentageValue的Value属性的表达式/公式是:

=IIF((Fields!Week.Value="WK1"), Fields!Variance.Value / Fields!Price.Value, Fields!Variance.Value)
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试将.rdl文件上传到SQL Server Reporting Services时,我得到:

" 文本框'textboxPercentageValue'的值表达式直接指向字段'Week'而不指定数据集聚合.当报表包含多个数据集时,数据区域外的字段引用必须包含在指定数据集范围的聚合函数中.(rsFieldReferenceAmbiguous)获取联机帮助文本框'textboxPercentageValue'的值表达式直接指向字段'Variance'而不指定数据集聚合.当报表包含多个数据集时,数据区域外的字段引用必须包含在聚合函数中指定数据集范围.(rsFieldReferenceAmbiguous)获取联机帮助文本框'textboxPercentageValue'的值表达式直接指向字段'Price'而不指定数据集聚合.当报表包含多个数据集时,数据区域外的字段引用必须包含在指定数据集范围的聚合函数中.(rs FieldReferenceAmbiguous)获取联机帮助文本框'textboxPercentageValue'的值表达式直接指向字段'Variance'而不指定数据集聚合.当报表包含多个数据集时,数据区域外的字段引用必须包含在指定数据集范围的聚合函数中.(rsFieldReferenceAmbiguous) "

那么我需要做些什么来使这个表达式/公式明确无法与SQL Server Reporting Services或VBScript解析器或"谁"抱怨它?

vbscript rdl bids aggregates reporting-services

4
推荐指数
1
解决办法
2万
查看次数

重置网络适配器

我这里有一个 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)

vbscript wmi

4
推荐指数
1
解决办法
2455
查看次数

如何在经典的asp中拆分字符串

我试图在经典的asp应用程序中拆分一个字符串,在页面中有下面的代码,它似乎不起作用.还有一个问题看起来很相似但是处理不同类型的问题,我已经找到了那里的答案而且他们没有帮助.任何帮助,将不胜感激.

<% 
Dim SelectedCountries,CitizenshipCountry, Count 
SelectedCountries = "IN, CH, US"    
CitizenshipCountry = Split(SelectedCountries,", ")
Count = UBound(CitizenshipCountry) + 1 
Response.Write(CitizenshipCountry[0])
Response.End
%>
Run Code Online (Sandbox Code Playgroud)

arrays string vbscript split asp-classic

4
推荐指数
1
解决办法
1万
查看次数

将 Json 字符串解析为经典 ASP 页面

使用库将 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)

vbscript json asp-classic

4
推荐指数
1
解决办法
2万
查看次数

如何从 R 运行 VBS 脚本,同时将参数从 R 传递到 VBS

假设我想从 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变量的值?

vbscript r

4
推荐指数
1
解决办法
4643
查看次数

经典 Asp cookie 的过期日期并不总是被设置

我正在尝试在 Classic Asp 中使用 addheader -method 设置 cookie,这是向 cookie 添加 HttpOnly 和 Secure -flags 的唯一方法。所有这些都适用于以下代码 - 但有一个例外,它是到期日期/时间。

<%
Response.AddHeader "Set-Cookie", "testCookie=2000; path=/;HttpOnly;Secure;expires=" & dateAdd("d", 365, Now()) & ";samesite=Strict;HostOnly"
%>
Run Code Online (Sandbox Code Playgroud)

不过,这似乎是与浏览器相关的问题。在 Firefox 中,我可以在开发人员工具的“存储”选项卡中看到设置了过期时间。但在 Chrome 中,它始终保持默认状态,即会话结束时过期。Edge 也存在同样的问题。

有人对这个问题有经验吗?

vbscript asp-classic

4
推荐指数
1
解决办法
1661
查看次数