标签: vbscript

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万
查看次数

重置网络适配器

我这里有一个 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
查看次数

将 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
查看次数

如果确定我们的系统需要大修,那么最好的方法是什么?

我们正在使用VBScript作为主要语言来构建基于Classic ASP的Web应用程序.我们同意我们的后端(框架,如果你愿意)已过时,并没有为我们提供快速前进的适当工具.我们几乎已经接受了当前的webMVC模式,并且不能以合理的方式使用当前的技术来实现.缺失的大功能是适当的调度和继承模板等.

目前正在讨论两条路径:

  1. 使用JScript将现有应用程序移植到Classic ASP,这将使我们能够毫不费力地从那里转到.NET MSJscript,并最终最终在.NET平台上(最好是MVC的东西将由ASP完成).在我们的意见中,NET并不比我们现在好多了.这被认为是比下一个选择风险更小的更安全的路径,尽管可能需要稍长一些.
  2. 使用其他一些技术完全重写应用程序,现在该软件包的领导者是Python WSGI,它具有自定义框架,ORM和良好的模板解决方案.即使是django和其他预先构建的解决方案,这里也有摆动空间.这种方法有望成为最快的解决方案,因为我们可能会在实际产品旁边运行测试版,但如果我们不能/不能做到这一点,它确实有可能浪费大量时间.

这并不意味着我们的逻辑已经消失,因为我们多年来建立的逻辑相当稳定,正如所指出的那样难以处理.它建立在SQL Server 2005上,大量使用存储过程并在IIS 6上发布,只是为了更多的背景.

现在,问题.有没有人采取上述两条路径中的任何一条?如果是这样,它是否成功,它怎么可能更好,等等.我们不希望偏离做这两件事之一,但一些建议或其他解决方案可能会有所帮助.

python vbscript asp-classic

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

Request.ServerVariables("REMOTE_ADDR")与Request.ServerVariables("HTTP_X_FORWARDED_FOR")的安全隐患

假设我们正在跟踪Web服务的最终用户IP:

ip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If ip = "" Then
    ip = Request.ServerVariables("REMOTE_ADDR")
End If
Run Code Online (Sandbox Code Playgroud)

我已经读过这是检索最终用户IP的最佳方法,因为它甚至适用于透明代理上的用户.

如果我们使用最终用户IP地址来过滤恶意用户,那么上述方法是否有任何安全隐患,而不是仅使用Request.ServerVariables("REMOTE_ADDR")?

例如,如果我们通过最终用户IP禁止恶意用户,他们是否可以通过代理轻松更改其IP并继续使用我们的Web服务?

在此先感谢您的帮助.

security vbscript web-services asp-classic

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

动态创建Office Open XML文档:在打开时更新所有字段

我正在以编程方式生成Office Open XML文档(Word 2007格式),并希望在我生成的文档首次在Word中打开时更新所有字段.

当我刚刚研究过这个时,唯一的方法就是在文档打开时运行VB Script.但VB脚本默认不运行,为此工作,用户必须授权脚本,这比要求用户执行"全选,F9"更复杂,因此这违背了目的.

有什么建议吗?

亚历克斯

vbscript openxml

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

如何使用vbscript检查Outlook是否正在运行

如何使用vbscript检查Outlook是否正在运行,我需要这个安装程序,要求用户在安装我的应用程序之前关闭outlook.

谢谢,

vbscript outlook.application

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