为什么以下代码在运行时会出现80004005错误?我试图每隔10秒获得几个站点的状态......(给出的是示例).
'http://www.sebsworld.net/information/?page=VBScript-URL
'http://www.paulsadowski.com/wsh/xmlhttp.htm
'the array of sites
sites = Array("http://www.google.com/","http://en.wikipedia.org/wiki/Main_Page")
While(True)
For Each site In sites
'Get site status
Set Http = WScript.CreateObject("Microsoft.XMLHTTP")
Http.Open "GET", site, True
Http.Send
If(Http.Status <> 200) Then 'site isn't 200
MsgBox "The site at " & vbNewLine & site & vbNewLine & "has status: " & Http.Status
End If
Next
WScript.Sleep(10)'Sleep 10 seconds
Wend
Run Code Online (Sandbox Code Playgroud) 我有一个以父目录开头的.zip文件.我需要从文件中读取该dir,然后搜索我的HD以查看该dir名称是否已存在.如果它存在,我然后删除它并将其替换为.zip文件的内容.
所有这些我都可以做,除了读取.zip而不实际解压缩文件.
.zip文件的大小可以超过2G,所以我想避免解压缩,然后读取目录,然后复制.
我不直接解压缩到该位置并强制覆盖的原因是,由于某些原因,当使用该CopyHere方法解压时,它会忽略通常会强制覆盖的开关,并且仍然会提示用户是否要覆盖.
解压缩文件的代码:
Set objSA = CreateObject("Shell.Application")
Set objSource = objSA.NameSpace(pathToZipFile).Items ()
Set objTarget = objSA.NameSpace(extractTo)
objTarget.CopyHere objSource,4
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用正则表达式从SQL语句中删除注释.
这个正则表达式几乎可以工作:
(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)|'(?:[^']|'')*'|(--.*)
Run Code Online (Sandbox Code Playgroud)
除了最后一部分不能很好地处理" - "评论.问题是处理SQL字符串,用''分隔.
例如,如果我有
SELECT ' -- Hello -- ' FROM DUAL
Run Code Online (Sandbox Code Playgroud)
它不应该匹配,但它匹配.
这是在ASP/VBscript中.
我想过从右到左匹配,但我不认为VBScript的正则表达式引擎支持它.也试图摆弄负面的背后,但结果并不好.
美好的一天,
我正在创建一个VBScript函数来返回一个数组.但我想传递一个数组大小的参数.
Function CreateArray(arraySize)
Dim someArray(arraySize) ' EXPECTED INTEGER CONSTANT
For i = 0 to UBound(someArray)
someArray(i) = 5
Next
CreateArray = someArray
End Function
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误:
预期的整数常量
这可以在VBScript中做到吗?
TIA,
COSON
我正在尝试调试一些VBScript,通常我会安装古老的(但是免费的)Microsoft Script Debugger,它可以在32位XP和32位Windows 7上正常工作.
但是,在64位Windows 7上安装它之后,//d或者//x(或者甚至两者)都不再实际调用调试器.该脚本将很乐意运行,就像我从未提供过该选项一样 - 但这不是很有用.
有什么办法可以让它运作起来吗?我只是偶尔使用它来刮擦我自己的痒,所以我无法证明购买一些商业工具作为替代品.
我正在重新设计网页的一部分,以便将来更容易更新.目前,它是一系列硬编码的表.要重新设计表格(例如,按照我想要的方式按字母顺序排列),需要手动交换html中的很多值.
这就是我想要做的:创建一个带有title和link变量的url_Link对象,分别保存显示名称和url.创建一个url_Link对象数组,并将其填充到页面的.asp文件的顶部.对这些阵列上的每个循环执行a以构建和填充表
这本身并不是那么糟糕,但我遇到了两个问题.首先,我不想定义数组大小,因为当对链接数进行更改时,这需要更改第二个位置.将存在一些逻辑来阻止显示某些url_Link对象(例如,某些用户无法访问某些页面,因此他们将看不到链接),这会在调整数组大小时引起问题.
我知道我可以制作一个大尺寸的数组,但这对我来说似乎很浪费(我不知道每个函数如何,也不希望出现一堆空行).
我该怎么做才能解决这些问题?我对vbscript知之甚少,而且我一直在使用的大部分代码都没有利用数组或对象.
更新:我尝试使用redim PRESERVE来修剪超大阵列的多余脂肪.问题是在某些情况下,由于if条件,我的数组中填充的对象数量少于其最大大小.当我使用for循环时,这会导致问题(尝试为每个循环工作并且目前没有发生).我在redim行上收到错误"此数组已固定或暂时锁定"
码:
dim systemSettingsArray(1)
arrayCounter = 0
if ADMIN = "Y" then
set systemSettingsArray(arrayCounter) = (new url_Link).Init("Account Administration","Maintenance/Account_Admin.asp")
arrayCounter = arrayCounter + 1
end if
set systemSettingsArray(arrayCounter) = (new url_Link).Init("Time Approval","Maintenance/system_Time_Approval.asp")
redim Preserve systemSettingsArray(arrayCounter)
Run Code Online (Sandbox Code Playgroud) 我不确定我做错了什么,但是Windows Script Host如果我将它保存在.js带有UTF-8编码的文件中,我似乎无法运行以下JScript :
var name = "Hello world!";
WScript.echo(name);
Run Code Online (Sandbox Code Playgroud)
当我运行它时,它给了我这个错误:

请注意,如果我使用ANSI编码保存脚本,脚本运行正常.
是Windows Script Host引擎不兼容的UTF-8编码?
我有一个HTML字符串(没有任何类型的文件,不想先将我的字符串保存为html文件,然后加载它)我想在某些标签之间获得一些链接和文本.我试图搜索,但没有找到任何运气.有人可以帮我解决这个问题.提前致谢.
我在我的一个脚本中不断收到此错误:
对象不是集合
所以我想创建一个函数,在对象执行任何操作之前检查对象是否是一个集合.
到目前为止,我创建了这个:
Function IsCollection(param)
If IsEmpty(param) Then
IsCollection = False
ElseIf(TypeName(param) = "String") Then
IsCollection = False
Else
IsCollection = True
End If
End Function
Run Code Online (Sandbox Code Playgroud)
但我觉得我错过了一些检查 - 当然唯一可用的类型不仅仅是String,Empty或者Collection?
我认为只是尝试枚举可能会更好param,如果这会返回错误,那么我知道输出false- 这似乎是一个更好的选择吗?
Function IsCollection(param)
For Each p In param
' Anything need to go here?
Next
If Err > 0 Then
IsCollection = False
Else
IsCollection = True
End If
End Function
Run Code Online (Sandbox Code Playgroud)
即使在第二个例子中,指定给出的错误是"对象不是集合"也是明智的吗?