我很确定答案是否定的.我知道我可以写
如果lcase(strFoo)= lcase(request.querystring("x"))则...
或者使用inStr,但我只想检查是否有一些未记录的设置隐藏在注册表中或某处使VBScript字符串的内容与脚本语言的其余部分保持一致!
谢谢丹
我维护了很多用于在我的网络上执行各种启动脚本的vbscripts,并且我在几乎所有这些脚本中都使用了一些函数.
没有复制和粘贴,有没有人建议我如何创建可重用的vbscript代码库.我并不反对使用代码生成器这样做,只要它不像复制和粘贴那样令人头疼.但任何建议都将受到赞赏.
谢谢
我正在使用第三方COM对象,它有一些方法将值作为BSTR指针传回.由于VBscript仅支持Variant类型尝试以类似Object.Method(sMyString)的方式使用,因此合理地以"类型不匹配"错误结束.
我怀疑这个错误是由COM对象本身而不是VBscript解释器生成的,因为对象获取字符串而不是指针.我试图解决它定义字符串数组但它仍然是相同的错误.
所以我想知道是否有人有类似的问题以及使用了哪些变通方法.
只是为了强调.我无法控制COM对象.这是供应商的应用程序.我必须"按原样"使用它.
谢谢你,Albert Gareev
<%@ language = "VBScript"%>
<!DOCTYPE html>
<html>
<body>
<form method="post" action = "">
<input type = "submit" onclick = "check()" value = "Submit"/>
</form>
<%
sub check()
Response.write("TEST")
end sub
%>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
当我点击提交按钮时,由于某种原因,这不会打印"TEST".
我有一个asp经典页面,当我尝试在JavaScript代码中使用asp变量时,它只允许数字,当变量中的字符串发送错误时:
<%
dim a, b
a = "11322353464767875689"
b = "someId=1&another=29"
%>
<script language='javascript'>
var urlParamsJS = <%=b%>
alert(urlParamsJS);
var params = 'dependent=yes,directories=no,hotkeys=no,menubar=no,personalbar=no,scrollbars=yes,status=no,titlebar=yes,toolbar=no';
var fullurl = 'page.asp?p=' + urlParamsJS
var wcontainer2 = open ( fullurl, 'otherThings', params);
wcontainer2.resizeTo (900,470);
wcontainer2.moveTo (100,220);
</script>");
Run Code Online (Sandbox Code Playgroud)
当我<%=b%>只使用打印到屏幕时");
但是当我使用时,<%=a%>我会收到有关此文本的警报page.asp?p=11322353464767875689
请帮忙!
按下取消按钮后,如何让我的VBScript取消进程?当按"确定"时,我希望VBScript打开一个新的InputBox.我已经得到了这个有点工作,但我也想给一个功能"取消"按钮.一个函数,可以阻止整个VBScript打开任何其他MsgBox或InputBox.
我尝试过这样的事情:
Set shell = createobject("wscript.shell")
strtext = InputBox("text")
vbCancel
If vbCancel then
WScript.Quit
End if
Run Code Online (Sandbox Code Playgroud) 我有一个脚本文件,我通过任务计划程序执行,在Windows 7中工作正常,并在Windows 10中不起作用.
这是代码片段:
Dim myxlApplication, myWorkBook
Set myxlApplication = CreateObject("Excel.Application")
myxlApplication.Visible = False
Set myWorkBook = myxlApplication.Workbooks.Open( emlAttach )
myxlApplication.DisplayAlerts = False
myWorkBook.Application.Run "Main.Main"
myxlApplication.DisplayAlerts = True
myxlApplication.Quit
Set myxlApplication = Nothing
Run Code Online (Sandbox Code Playgroud)
emlAttach 在脚本中先前设置为具有扩展名的绝对路径和文件名.
通过单击脚本文件执行此操作时,它可以正常工作.当它作为计划任务运行,或强制从任务计划程序运行时,它会询问我打算使用哪个程序来打开文件.如果我选择Excel,它会给我一个错误,告诉我该文件不存在.
该错误的文件扩展名是错误的,xlsx而不是变量限定的内容xlsb.
在循环内调用存储的正确方法是什么?
如果我这样输入:
Connection = CreateObject("ADODB.Connection")
DO UNTIL RS.EOF
SET cmd = Server.CreateObject ("ADODB.Command")
cmd.ActiveConnection = Connection
cmd.CommandText = "spMySproc"
cmd.CommandType = adCmdStoredProc
cmd.Parameters.Append cmd.CreateParameter ("@p1",adInteger,adParamInput, ,RS("Val1"))
cmd.Parameters.Append cmd.CreateParameter ("@p2",adInteger,adParamInput, ,RS("Val2"))
cmd.Execute
SET cmd = nothing
LOOP
Run Code Online (Sandbox Code Playgroud)
然后在循环的第二次和后续迭代中,我得到一个错误
过程或函数spMySproc指定的参数过多。
我有像10A或20B的字符串.我想要10个10A或20个20个.如何使用VBScript或QTP内部命令仅从字符串中拆分数字?
如何在VBscript中将字符串转换为变量名?我发现JavaScript,C#,Pyton,Perl,Ruby,Java的类似Q/A ,但不适用于VBscript.
这就是为什么我不能直接使用变量而不是字符串:
我从Web服务获得了一个逗号分隔的权限名称列表.项目经理可以随时更新此列表,并期望我检查软件用户是否被授予这些权限.用户的权限在运行时通过复杂的方法以及配置文件数据,软件中的活动历史等设置.例如,如果用户购买了1000个产品,变量SuperCustomerPermission将在页面标题中为他设置SuperCustomerPermission="yes"(不作为cookie或会话也不存储在数据库中).
要检查权限列表,我想将权限名称列表传递给函数并循环显示名称:
我从Web服务获得的权限名称:
permissionNames = "adminPermission,deletePermission,configPermission,SuperCustomerPermission"
Run Code Online (Sandbox Code Playgroud)
我尝试将这些字符串作为变量传递给子例程:
Sub checkPermission(PermissionNames)
permissionNamesArray = split(permissionNames,",",-1,1)
For Each x In permissionNamesArray
'How to convert x to its variable equivalent and check if it equals "yes"
Next
End Sub
Call checkPermission(permissionNames)
Run Code Online (Sandbox Code Playgroud) vbscript ×10
asp-classic ×4
adodb ×1
bstr ×1
code-reuse ×1
com ×1
hp-uft ×1
html ×1
javascript ×1
organization ×1
qtp ×1
windows-10 ×1