有点复杂的Vbs

时间:2015-10-02 20:33:24

标签: vbscript

我必须创建一个有点复杂的vscript,至少对我来说..如果有人可以提供帮助,我会非常感谢你! :d

这些是脚本需要处理的任务:

*-run this cmd file located on "C:\Program Files\Paradigm\Paradigm-15\Services\bin\cli\PG_epos_user_list.cmd" -pns_host localhost

该cmd会生成一个用户列表,因此,从此cmd的输出中,我需要检查当前是否列出了当前记录的帐户名(检查是否匹配)*

- 如果未列出,请运行另一个cmd - >     “C:\ Program Files \ Paradigm \ Paradigm-15 \ Services \ bin \ cli \ PG_epos_user_create.cmd”-pns_host localhost -epos_user -member_list

但在这种情况下,我们必须在该命令行上的每个“”上输入登录的用户ID。

然后,将存储在共享磁盘上的ini文件中的内容与位于C:\ProgramData\Paradigm\Paradigm-15\Applications\config\env\common\上的2个文件的值进行比较

1_epos_license_location  & 1_epos_license_location.tcl 

从“[许可证]”value Stratimagic=**licensevalue**部分获取许可证值 并确保与1_epos_license_location & 1_epos_license_location.tcl.

上的许可信息相匹配

如果不匹配,请更新这两个文件。 另外,检查W盘是否已映射,如果没有,请使用msgbox

进行建议

谢谢大家!我到目前为止(工作),所有斜体部分都在工作。

dim objshell

    sub runCommand(strCommand)
       Dim oShell
       Set oShell = CreateObject("WScript.Shell")
       oShell.Run strCommand, 0, TRUE
    end sub

Private Function File2Output(tempfile)
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set txtStream = fso.OpenTextFile(tempfile, 1)
        out = ""
        out = txtStream.ReadAll
        txtStream.Close
        fso.DeleteFile tempfile
        File2Output = out
End Function


call runCommand("%COMSPEC% /c ""C:\Program Files\Paradigm\Paradigm-15\Services\bin\cli\PG_epos_user_list.cmd"" -pns_host localhost > c:\log.txt")

Set objNetwork = CreateObject("Wscript.Network")

user = objNetwork

cmdOut = File2Output("c:\log.txt")
'WScript.echo cmdout
'WScript.echo user
'WScript.echo InStr(cmdOut, user)
if InStr(cmdOut, user) > 0 Then
                WScript.echo "Found"
Else
                WScript.echo "Not Found"
End if

提前致谢!, 此致

1 个答案:

答案 0 :(得分:0)

sub runCommand(strCommand)
   Dim oShell
   Set oShell = CreateObject("WScript.Shell")
   objShell.Run strCommand, 0, TRUE
end sub

运行命令:

这将调用sub并运行您的命令。命令的最后一部分(> c:\ temp \ log.txt)实际上会将命令的结果转储到log.txt文件中,因此在执行后您可以实际打开文件并解析结果,从而允许您决定如何继续使用脚本。

call runCommand("%COMSPEC% /c C:\Program Files\Paradigm\Paradigm-15\Services\bin\cli\PG_epos_user_list.cmd > c:\temp\log.txt")

然后,获取当前用户:

Set objNetwork = CreateObject("Wscript.Network")
Wscript.Echo "The current user is " & objNetwork.UserName

**有关run方法的进一步参考:https://msdn.microsoft.com/en-us/library/d5fk67ky(v=vs.84).aspx

希望这有帮助。