标签: vbscript

CScript/WScript防止错误被阻止

目前,当出现脚本错误时,WScript会弹出消息框.这些脚本由其他进程调用,并在服务器上运行,因此没有人可以忽略错误框.

我想要的是将错误消息转储到STDOUT,并执行以返回调用进程.弹出作为MSGBox只是挂起了整个事情.

想法?

vbscript automation wsh

6
推荐指数
1
解决办法
8903
查看次数

如何在经典ASP中运行参数化SQL查询?它安全吗?

我将不得不处理经典ASP VBScript中的一些SQL代码.

我有两个问题.

首先,在.net中,我习惯使用System.Data.SqlClient命名空间对象来执行查询.例如:

Dim conn as New SqlConnection("Data Source=MyServer;uid=myUid;pwd=myPwd;Initial Catalog=myDataBase;"  
Dim cmd as New SqlCommand("Select fname From myTable where uid=@uid;", conn)  
cmd.Parameters.add(New SqlParameter("@uid",100323)  
conn.open()
Response.Write(cmd.ExecuteScalar())
conn.Close()
Run Code Online (Sandbox Code Playgroud)

我被告知使用参数化查询可以使我的查询免受SQL注入攻击.

我想知道在使用VBScript的经典ASP中执行此类查询的等效代码是什么,以及必须使用哪些类似的安全预防措施来防止SQL注入.

vbscript sql-injection asp-classic

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

从Windows Server 2008上的脚本打开URL

我想编写一个自动加载网址(例如http://google.com)的脚本.但我不想在服务器上安装任何第三方库或程序.最简单的方法是什么?

我只是我的选项是批处理脚本,vb脚本或powershell对吗?

vbscript powershell batch-file

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

在VBScript中获取命令行输出(无需写入文件)

我正在使用VBScript,我的目标是能够用驱动器号代替我选择的路径.我需要D驱动器,如果它不可用,我需要检查它是否已经映射到正确的位置; 然后通知用户是否不是.我发现了这个:http://technet.microsoft.com/en-us/library/ee156605.aspx,我正在尝试调整他们的第二个例子:

Set objShell = WScript.CreateObject("WScript.Shell")
Set objExecObject = objShell.Exec("cmd /c ping -n 3 -w 1000 157.59.0.1")
Do While Not objExecObject.StdOut.AtEndOfStream
    strText = objExecObject.StdOut.ReadLine()
    If Instr(strText, "Reply") > 0 Then
        Wscript.Echo "Reply received."
        Exit Do
    End If
Loop
Run Code Online (Sandbox Code Playgroud)

(我的改编):

Set objShell = WScript.CreateObject("WScript.Shell")
Set objExecObject = objShell.Exec("cmd /c substr")
strText = ""

Do While Not objExecObject.StdOut.AtEndOfStream
    strText = strText & objExecObject.StdOut.ReadLine()
Loop

Wscript.Echo strText
Run Code Online (Sandbox Code Playgroud)

然后我可能会搜索告诉D驱动器映射位置的字符串.我也试过objShell.Exec("subst"),但我仍然没有得到任何输出.有没有人对我可能做错了什么有任何想法?或者有更好的方法来说明驱动器映射吗?谢谢,

213897

windows vbscript subst drive-mapping

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

用于vbs的CreateObject()对象列表

我喜欢脚本,我不喜欢重新发明轮子,所以我喜欢CreateObject
你能不能指出一个可以在VBScript上使用的简短描述的对象列表.真的,我没有找到超过50的网站.

提前致谢

vbscript createobject

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

VBScript从Shell获得结果

Set wshShell = WScript.CreateObject ("WSCript.shell")
wshshell.run "runas ..."
Run Code Online (Sandbox Code Playgroud)

如何获取结果并显示在MsgBox中

vbscript scripting wsh windows-scripting

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

用vbscript读取xml文件

我正在尝试编写一个vbscript来自动配置存储阵列.我在确定如何最好地导航XML方面遇到了一些困难.

我的XML的示例部分:

<SERVER>
<INTERFACE>
<PORT>0</PORT>
<IPADDRESS>192.168.1.1</IPADDRESS>
<NETMASK>255.255.255.0</NETMASK>
</INTERFACE>
<INTERFACE>
<PORT>1</PORT>
<IPADDRESS>192.168.1.2</IPADDRESS>
<NETMASK>255.255.255.0</NETMASK>
</INTERFACE>
</SERVER>
Run Code Online (Sandbox Code Playgroud)

所以我想迭代每个接口(实际上有5个)并在正确的接口上设置适当的IP和网络掩码.

我现在正在这样做:

Set objXMLDoc = CreateObject("Microsoft.XMLDOM") 
objXMLDoc.async = False 
objXMLDoc.load("example.xml")

Set Root = objXMLDoc.documentElement 
Set NodeList = Root.getElementsByTagName("interface") 
port = 0
For Each Elem In NodeList 
WScript.Echo "Port " & port & " has IP address of " & Elem.text
port = port + 1
Next
Run Code Online (Sandbox Code Playgroud)

但是必须有一个更干净的方法来做这个,我可以选择接口部分并读入端口,ipaddress和netmask,发出命令,然后进入下一个界面?

谢谢.

xml vbscript xmldom

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

VBScript SendKeys CTRL + LWIN + TAB?

我正在尝试编写一个简单的脚本,它将发送CTRL+ WINDOWS KEY+的组合键TAB.下面的代码发送键CTRL+ ALT+TAB

Set WshShell = WScript.CreateObject("WScript.Shell")
  WshShell.SendKeys "^%{TAB}"
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试ALTLWIN(也就是左键Windows键)替换"%"(也就是键)时,它会显示语法错误.

我试过以下,但没有运气:

Set WshShell = WScript.CreateObject("WScript.Shell")
  WshShell.SendKeys "^{LWIN}{TAB}"
Run Code Online (Sandbox Code Playgroud)

 

Set WshShell = WScript.CreateObject("WScript.Shell")
  WshShell.SendKeys "^{LWIN}+{TAB}"
Run Code Online (Sandbox Code Playgroud)

 

Set WshShell = WScript.CreateObject("WScript.Shell")
  WshShell.SendKeys ^{LWIN}+{TAB}
Run Code Online (Sandbox Code Playgroud)

我知道它与能够在按下其他按键时按住某些按键有关,但我似乎无法做到正确.

可以使用CTRL+ 以编程方式按下Windows键ESC.有没有办法将此组合设置为调用的变量LWIN,然后使用上述脚本之一?

windows vbscript keystroke sendkeys

6
推荐指数
2
解决办法
5万
查看次数

WScript.Shell.Exec - 从stdout读取输出

我的VBScript没有显示我执行的任何命令的结果.我知道命令被执行但我想捕获结果.

我已经测试了很多方法,例如:

Const WshFinished = 1
Const WshFailed = 2
strCommand = "ping.exe 127.0.0.1"

Set WshShell = CreateObject("WScript.Shell")
Set WshShellExec = WshShell.Exec(strCommand)

Select Case WshShellExec.Status
   Case WshFinished
       strOutput = WshShellExec.StdOut.ReadAll
   Case WshFailed
       strOutput = WshShellExec.StdErr.ReadAll
 End Select

WScript.StdOut.Write strOutput  'write results to the command line
WScript.Echo strOutput          'write results to default output
Run Code Online (Sandbox Code Playgroud)

但它不打印任何结果.如何捕捉StdOutStdErr

vbscript

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

声音分批?

我正在批量制作游戏,我想在玩家"争斗"时播放音乐.我设法播放音乐,但是一旦玩家完成了战斗,我似乎无法停止音乐.

@echo off
set "file=BattleMusic.mp3"
( echo Set Sound = CreateObject("WMPlayer.OCX.7"^)
echo Sound.URL = "%file%"
echo Sound.Controls.play
echo do while Sound.currentmedia.duration = 0
echo wscript.sleep 100
echo loop
echo wscript.sleep (int(Sound.currentmedia.duration^)+1^)*1000) >sound.vbs
start /min sound.vbs'
Run Code Online (Sandbox Code Playgroud)

那是我的音乐剧本.关于如何在玩家完成后停止它的任何想法?

vbscript batch-file playback

6
推荐指数
1
解决办法
342
查看次数