使用Visual Basic脚本创建常规验证。 [英] Creating a General Validation using Visual Basic Script.
问题描述
为什么在将此Visual Basic脚本作为进程运行时无法获得输出
VB脚本上的进程将验证字段,返回是否有效。
脚本
<前lang =vb> 昏暗 Arg
设置 Arg = WScript.Arguments
如果 Arg.Count< ;> 2 然后
Wscript.Echo >>缺少参数
else
Wscript.Echo < span class =code-string> >>
Wscript.Echo >>
end if
功能
公开 功能 RunScript( ByVal args As 字符串)作为 Script_Struct
Dim start As 新 ProcessStartInfo
start.FileName = C:\ WINDOWS \system32 \cscript.exe
start.Arguments = args
start.UseShellExecute = False
start.RedirectStandardOutput = True
start.CreateNoWindow = True
Dim process 作为 新处理
process.StartInfo = start
process.Start()
Dim ret 作为 新 Script_Struct
Dim out As System.IO.StreamReader = process.StandardOutput
ret.out = out.ReadToEnd
尝试
Dim 错误 As System.IO.StreamReader = process.StandardError
ret.err = err.ReadToEnd
Catch ex As 异常
结束 尝试
process.WaitForExit()
返回 ret
结束 功能
来电
Dim ret As Script_Struct = RunScript(args)
MsgBox(ret.out)
结构
公共 结构 Script_Struct
Dim out As 字符串
Dim 错误 As 字符串
结束 结构
参数(参数传递)为字符串
D: \ Christian Jay Soyosa \Programs \ .NET Desktop \Key Imaging\Configuration\Configuration\bin\Debug\Test.vbs12
输出是
Microsoft(R)Windows脚本宿主版本5.8< br />
版权所有( C)Microsoft Corporation。保留所有权利。
我尝试创建.VBS文件并出现运行消息框。 Wscript.Echo
是不是这个的语法?
有一些原因:
1. VBScript没有任何结构,你需要使用Class。
2.使用你需要的类的实例像这样使用Set:
设置 Script_Class = RunScript (args)
3.您的语法是VBA / VB.NET语法而不是VBScript,例如而不是返回ret你需要
RunScript = ret
等等......
Why I cant get the output when running this Visual Basic Script as a Process
Process on the VB Script will validate a field, returns valid or not.
Script
Dim Arg
Set Arg = WScript.Arguments
if Arg.Count <> 2 then
Wscript.Echo ">>Missing parameters"
else
Wscript.Echo ">>"
Wscript.Echo ">>"
end if
Function
Public Function RunScript(ByVal args As String) As Script_Struct
Dim start As New ProcessStartInfo
start.FileName = "C:\WINDOWS\system32\cscript.exe"
start.Arguments = args
start.UseShellExecute = False
start.RedirectStandardOutput = True
start.CreateNoWindow = True
Dim process As New Process
process.StartInfo = start
process.Start()
Dim ret As New Script_Struct
Dim out As System.IO.StreamReader = process.StandardOutput
ret.out = out.ReadToEnd
Try
Dim err As System.IO.StreamReader = process.StandardError
ret.err = err.ReadToEnd
Catch ex As Exception
End Try
process.WaitForExit()
Return ret
End Function
Calls
Dim ret As Script_Struct = RunScript(args)
MsgBox(ret.out)
Structure
Public Structure Script_Struct
Dim out As String
Dim err As String
End Structure
Argument (Parameters Pass) as String
"D:\Christian Jay Soyosa\Programs\.NET Desktop\Key Imaging\Configuration\Configuration\bin\Debug\Test.vbs" "1" "2"
Output is
Microsoft (R) Windows Script Host Version 5.8<br /> Copyright (C) Microsoft Corporation. All rights reserved.
I have try creating a .VBS file and running a message box appears. Is the Wscript.Echo
not the syntax for this?
There are some reasons:
1. VBScript has not any structures, you need to use Class.
2. Using instanses of classes you need to use "Set" like this:
Set Script_Class = RunScript(args)
3. Your syntax is a VBA / VB.NET syntax and NOT a VBScript, e.g. instead of "Return ret" you need
RunScript = ret
and so long ...
这篇关于使用Visual Basic脚本创建常规验证。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!