标签: vbscript

VBScript - 从 SQL Server 2008 上的存储过程检索标量值

我的存储过程非常简单。它插入一条新记录。最后我有以下行:

SELECT SCOPE_IDENTITY()
Run Code Online (Sandbox Code Playgroud)

1)我是否使用正确的代码返回新插入记录的主键值?
2) 如何使用 ASP Classic/VBScript 和 ADO Classic 检索该值?

Dim cmdUA
Set cmdUA = Server.CreateObject("ADODB.Command")
Set cmdUA.ActiveConnection = tcon
cmdUA.CommandText = "InsertUserAgent"
cmdUA.CommandType = adCmdStoredProc 
cmdUA.Parameters.Append cmdUA.CreateParameter("useragent", adVarWChar, _
adParamInput, 1000)
cmdUA("useragent") = Request.ServerVariables("HTTP_USER_AGENT")
cmdUA.Exec
'Here I need to get the value returned from the stored procedure
Set cmdUA.ActiveConnection = Nothing
Set cmdUA = Nothing
Run Code Online (Sandbox Code Playgroud)

sql-server vbscript ado asp-classic

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

在 VBScript 中使用 MSHTML 解析 html 文件

我想在 VBScript 中使用 MSHTML 将字符串加载为 html 文件并解析它。我可以使用“InternetExplorer.application”执行此操作,但我想使用“htmlfile”(MSHTML.HTMLDocument)执行此操作

下面的代码:

Set h =  CreateObject("htmlfile")
h.body.innerHTML = "html goes here"
Run Code Online (Sandbox Code Playgroud)

给出这个错误:

Microsoft VBScript 运行时错误:需要对象:“body”

如何加载 html 字符串?

html vbscript activex runtime-error mshtml

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

如何将 UNICODE 希伯来语在 VBScript 中显示为乱码?

    \n
  1. 我正在使用 vbscript 和 WinHttp.WinHttpRequest.5.1 对象从 HEBREW(WINDOWS-1255 / UTF-8 编码)网站收集信息。
  2. \n
\n\n

例如 :

\n\n
Set objWinHttp = CreateObject("WinHttp.WinHttpRequest.5.1")\n...\n\'writes the file as unicode (can\'t use Ascii)\nSet Fileout = FSO.CreateTextFile("c:\\temp\\myfile.xml", true, true) \n\n....\nFileout.WriteLine(objWinHttp.responsetext)\n
Run Code Online (Sandbox Code Playgroud)\n\n
    \n
  1. 在记事本/记事本++中查看文件时,我将希伯来语视为乱码/乱码。\n例如:\n \xc3\xa4\xc3\xac\xc3\xab\xc3\xa5\xc3\xba - \xc3\xa4\xc3 \xb8\xc3\xa1 \xc3\xa0\xc3\xa1\xc3\xb8\xc3\xa4\xc3\xad \xc3\xa9\xc3\xa5\xc3\xb1\xc3\xb3 - \xc3\xae\xc3\ xa5\xc3\xb8\xc3\xb9\xc3\xba

  2. \n
  3. 我需要一个 vbscript 函数来正确返回希伯来语,该函数应类似于以下http://www.pixiesoft.com/flip/选择第二个单选按钮并按转换按钮,您将正确看到希伯来语。

  4. \n
\n

unicode vbscript utf-8 hebrew windows-1255

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

在 vbscript 中将变量参数传递给 ShellExecute

我正在尝试学习如何在提升模式下运行 vbscript。如果我尝试运行提升的 vbscript 有参数,我就无法完全让它工作。

这是一个简单的例子:

操作系统版本.vbs

' Return a string indicating the operating system
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
   & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colOperatingSystems = objWMIService.ExecQuery _
   ("Select * from Win32_OperatingSystem")

'Wscript.echo Wscript.Arguments(0)
For Each objOperatingSystem in colOperatingSystems
   Wscript.StdOut.Write objOperatingSystem.Caption
   Wscript.StdOut.WriteBlankLines(1)
   Wscript.StdOut.Write "Version " & objOperatingSystem.Version
Next
Run Code Online (Sandbox Code Playgroud)

运行Elevated.vbs

' Run the script in elevated mode
'
' This will be needed to install programs into Program Files
prgName      = Wscript.Arguments.Item(0)
prgArgs      = ""
If …
Run Code Online (Sandbox Code Playgroud)

vbscript

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

schtasks 参数禁用“用户登录时执行”

我正在尝试在以管理员身份执行的 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 windows-task-scheduler

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

从完整文件路径中提取文件名

在 VBScript 中,如何将 Test1_QTP 文件夹名称与以下路径分开。我需要将“Test1_QTP”字符串提取到变量中。

C:\TeamTask\Automation\Daily\EB\20140508\Test1_QTP
Run Code Online (Sandbox Code Playgroud)

任何建议表示赞赏。

vbscript

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

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

搜索字符串在文本文件中出现的次数

我正在尝试阅读文本文件并计算文本文件中出现短语/字符串(不是单词)的次数,但到目前为止我所拥有的是:

Const ForReading = 1

Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objFile = objFSO.OpenTextFile("D:\VBscript project\testing.txt", ForReading)
strContents = objFile.ReadAll
objFile.Close

i = 0

arrLines = Split(strContents, "")

For Each strLine in arrLines
    If InStr(strLine, "hi there") Then
        i = i + 1
    End If
Next

WScript.Echo "Number of times word occurs: " & i
Run Code Online (Sandbox Code Playgroud)

这只会让我计算一个单词出现的次数,当我尝试调整它来计算短语时,这不起作用。

string vbscript

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

单行输入 VBS 自动打字机

我目前正在尝试在 VBS 中制作自动打字机,但我无法弄清楚如何轻松输入要输入的内容。现在,这就是我的代码的样子:

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.AppActivate "notepad"
WScript.sleep 10000
WshShell.SendKeys "H"
WScript.Sleep 100
WshShell.SendKeys "e"
WScript.Sleep 100
WshShell.SendKeys "l"
WScript.Sleep 100
WshShell.SendKeys "l"
WScript.Sleep 100
WshShell.SendKeys "o"
Run Code Online (Sandbox Code Playgroud)

但我真的希望我的代码能够在一行中自动输入所有文本,而不必SendKeys为每个字母重复输入。

vbscript wsh

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

添加同站;安全到经典 ASP 中的 Cookie

我们正在运行一个经典的 ASP 网站,并且在 Chrome 浏览器中遇到了 Cookies 问题。Chrome 正在强制安全地设置 cookie ( https://www.chromestatus.com/feature/5633521622188032 )

我们正在按如下方式设置 cookie:

Response.AddHeader "Set-Cookie", "TestCookie=This is a Test; path=/; SameSite=None; Secure" 
Response.Cookies("TestCookie").Expires = Date + 1
Run Code Online (Sandbox Code Playgroud)

但是,这在 Chrome 中存在问题,当调用不同域的资源时,会话会突然结束。

Chrome 的 cookie 详细信息显示:

Response.AddHeader "Set-Cookie", "TestCookie=This is a Test; path=/; SameSite=None; Secure" 
Response.Cookies("TestCookie").Expires = Date + 1
Run Code Online (Sandbox Code Playgroud)

请注意,没有提到我认为应该有的“安全”。为此在经典 ASP 中设置 Cookie 的正确方法是什么?

cookies vbscript asp-classic

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