使用Visual Basic脚本创建常规验证。 [英] Creating a General Validation using Visual Basic Script.

查看:75
本文介绍了使用Visual Basic脚本创建常规验证。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

为什么在将此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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆