我想要做的就是区分由命令行运行的程序或通过单击窗口中的 test.vbs 文件。
如果您通过键入运行该脚本C:\testFolder\test.vbs在命令提示符,的话,我想程序不同于如果你双击了运行test.vbs中testFolder。
是否有一些系统变量可以用来区分这两种情况?我首先尝试使用WScript.Fullname来确定路径名是以 cscript 还是 wscript 结尾。但这并不奏效。
任何想法都非常感谢。
我目前正在使用以下查询成功连接到位于 Windows 2008 上的 SQL 数据库;
$result = mssql_query("EXEC dbo.stored_procedure_name @param_level = 2");
Run Code Online (Sandbox Code Playgroud)
我的查询基于用 VB/ADO 编写的现有代码,看起来像;
If level = "" Then level = 1
cmdTT.ActiveConnection = connStrTest1
set objParam=cmdTT.CreateParameter("@param_level", adInteger, adParamInput, 4, level)
cmdTT.Parameters.Append objParam
set rsTT = cmdTT.Execute
Run Code Online (Sandbox Code Playgroud)
所以我尝试的是以下内容;
$f = 2;
$stmt = mssql_init('dbo.stored_procedure_name', $mssql_link);
mssql_bind($stmt, "@param_level", $f, SQLINT4, false);
mssql_execute($stmt);
Run Code Online (Sandbox Code Playgroud)
但无论变化如何,它似乎总是在屏幕上打印警告,“警告:mssql_execute() [function.mssql-execute]:存储过程执行失败...... ”。
我在这里调试问题的最佳方法是什么?任何人都可以看到我的问题的明确解决方案吗?
我目前正在从 LAMP 堆栈远程连接到数据库。
非常感谢伊恩
我想知道如何为 Outlook 自动安排一个宏。我创建了一个宏,它从电子邮件中提取附件并将其存储在一个文件夹中。当我通过单击宏“执行”执行该宏时,该宏运行良好。
但我希望这个宏每天自动执行,例如在来我办公室之前的 08:30。
谢谢
您可以通过 VBScript 中的 COM-interop 使用 .NET 方法。由于重载不会跨越托管/非托管边界,因此您必须向该方法附加某个后缀编号。后缀号似乎没有特定的顺序……后缀号是如何确定的?
例子:
Dim encoding, bytesthroughdotnet
Set encoding = CreateObject("System.Text.UTF8Encoding")
bytesthroughdotnet = encoding.GetBytes_4("???") 'get bytes
WScript.Echo LenB(bytesthroughdotnet) 'length
Set encoding = Nothing
Run Code Online (Sandbox Code Playgroud)
为什么 _4 用于 GetBytes?
(此问题遵循此回复)
如何使用VBscript检查计算机是否已被锁定?我想在计算机被锁定后停止运行应用程序,并在解锁后再次运行它
如何延迟 Vb 脚本?以下代码对我不起作用:
wscript.sleep 1000
Run Code Online (Sandbox Code Playgroud)
Delay 10
Sub Delay( seconds )
Dim wshShell, strCmd
Set wshShell = CreateObject( "Wscript.Shell" )
strCmd = "%COMSPEC% /C (PING -n " & ( seconds + 1 ) & " 127.0.0.1 >NUL 2>&1 || PING -n " & seconds & " ::1 >NUL 2>&1)"
wshShell.Run strCmd, 0, 1
Set wshShell = Nothing
End Sub
Run Code Online (Sandbox Code Playgroud)
dim oshell
set oshell = CreateObject("Wscript.Shell")
obshell.run "%windir%\system32\rundll32.exe kernel32.dll Sleep 5000"
Run Code Online (Sandbox Code Playgroud) 我正在尝试解决公司网站上的问题。有问题的页面是http://www.srbc.com/SiteMap.asp。尝试调用全局选项文件时出现以下错误:
Microsoft VBScript 运行时错误“800a01a8”需要对象:“/_Includes/Callout_Global.asp,第 40 行”
这是 /_Includes/Callout_Global.asp 文件中错误引用的行:
rs_main.open "Select TeamID, FirstName + ' ' + LastName as FullName from team where Category = 'Attorney' and IsActive = '1' Order by OrderNum"
Run Code Online (Sandbox Code Playgroud)
该代码控制应包含律师姓名列表的下拉框。
此代码在站点中的其他页面上运行良好(例如参见http://www.srbc.com/Careers/Default.asp)。
我不是编码员,只是想稍微清理一下这个网站。这是相当过时的代码,但任何关于我可以做些什么来解决这个问题的建议都将不胜感激。
SiteMap.asp 页面上调用此函数的代码如下所示:
<td width="210" valign="top" class="hideforprint">
<!--#include virtual="/_Includes/Callout_Global.asp" -->
</td>
<td width="20"> </td>
</tr>
</table>
<table width="726" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="25"></td>
</tr>
</table>
</td>
<td width="22" valign="top" background="/Images/CommonImages/rightborder.gif"> </td>
</tr>
</table>
<!--#include virtual="/_Includes/Footer.asp" -->
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
谢谢!
任何人都知道如何在所有内容之上而不是在后台制作一个 vbscript 弹出消息/框“生成”......?
这是我的脚本:)
Set objShell = WScript.CreateObject("WScript.Shell")
Const wshYes = 6
Const wshNo = 7
Const wshYesNoDialog = 4
Const wshQuestionMark = 32
intReturn = objShell.Popup("Vil du annulere shutdown?", _
20, "Shutdown om 5 minutter!", wshYesNoDialog + wshQuestionMark)
If intReturn = wshYes Then
Wscript.Echo "Shutdown annuleret."
objShell.Run "C:\ProgramData\AutoShutdown\Annuler.bat"
End If
Run Code Online (Sandbox Code Playgroud)
我很在VBScript中糟糕,我只是用我的批处理程序这个小部分。任何帮助表示赞赏!
Windows Script Host 的未来是什么?
微软已于 2015 年 5 月宣布在其新浏览器 Windows Edge 中终止 VBscript 和 ActiveX(顺便说一下,这对 Web 标准来说是个好消息)。但是,我无法找到有关脚本世界桌面部分的最新信息。我想知道下一个 Windows 桌面版本是否仍支持 VBscript、wscript.exe、cscript.exe 和 mshta.exe。我很担心,因为 Windows Script Host 引用日复一日地在 MSDN 库中越来越难找到。
我有很多 vbscript 和 hta 文件需要维护(在专业环境中),我需要预测是否很快需要迁移。
如果您有任何相关信息,请分享!
我正在尝试创建一个连接到 sql server 的脚本,选择一些数据,并将结果保存到 csv。在 Sql Server 中启用了 Windows 身份验证。
这是我到目前为止所拥有的:
Dim connect, sql, resultSet, pth, txt
Set connect = CreateObject("ADODB.Connection")
connect.ConnectionString = "Provider=SQLOLEDB;Server=server\instance;Database=pm;Trusted_Connection=True;"
connect.Open
sql="SELECT col1, col2 FROM tbl1 order by col1, col2"
Set resultSet = connect.Execute(sql)
pth = "d:\test.csv"
Set txt = fs.CreateTextFile(pth, True)
On Error Resume Next
resultSet.MoveFirst
Do While Not resultSet.eof
txt.WriteLine(resultSet(0) & "," & resultSet(1))
resultSet.MoveNext
Loop
resultSet.Close
connect.Close
Set connect = Nothing
Run Code Online (Sandbox Code Playgroud)
我得到错误:
d:\vbs_test.vbs(5, 1) Microsoft OLE DB Provider for SQL Server: Invalid authorization …Run Code Online (Sandbox Code Playgroud) vbscript ×10
sql-server ×2
wsh ×2
.net ×1
ado ×1
asp-classic ×1
com-interop ×1
command-line ×1
delay ×1
hta ×1
macros ×1
outlook ×1
overloading ×1
php ×1
powershell ×1
scripting ×1
windows ×1