2

我编写了以下 VB 脚本以运行 CLI 命令 - vpnclient.exe

我的目标是自动化 vpnclcient 过程并在出现问题时回答“y”,

我有 WIN XP 电脑

在 CMD 窗口中运行 vpnclient.exe 期间,我们得到以下问题

     Do you wish to continue? (y/n):

在我的VB中,我写了“echo y”以便自动回答这个问题,但问题仍然停留在CMD窗口中,我无法继续

请告知我的代码有什么问题以及如何解决?

我的 VB 脚本(vpnclient.exe – 存在于 VPN 目录下)

 Dim oShell
 Set oShell = WScript.CreateObject ("WScript.Shell")
 oShell.run "cmd /K CD C:\Program Files\Cisco\VPN  & ( echo y | vpnclient.exe connect  ""site moon"" )"
    Set oShell = Nothing
4

1 回答 1

1

您可以尝试创建一个文件,其中包含要在命令行上执行的命令,而不是回显密码。

这是一个示例,其中首先使用所需的命令创建文本文件,然后从文件中调用这些命令。

Public Function FTPDownload(serverName, ftpuser, ftppassword, dirPath, localpath, fileName) 
    Dim fso, myfile
    Set fso = CreateObject("Scripting.FileSystemObject")

    'Create FTP.EXE commands file
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set myfile= fso.OpenTextFile("C:\Regression\Results\ftp_cmd.ini", 2, True)
    myfile.WriteLine("open " &serverName ) 
    myfile.WriteLine(ftpuser)
    myfile.WriteLine(ftppassword)
    myfile.WriteLine("lcd " & localpath )
    myfile.WriteLine("cd " & dirPath)
    myfile.WriteLine("prompt")
    myfile.WriteLine("cr")
    myfile.WriteLine("mget *" &fileName &"*" )
    myfile.WriteLine("mdelete *" &fileName &"*" )
    myfile.WriteLine("close")
    myfile.WriteLine("quit")
    myfile.Close


    '====================The following code executes the FTP script. It creates a Shell object and run FTP program on top of it.===================
    Set objShell = CreateObject( "WScript.Shell" )
    objShell.Run ("ftp -i -s:" & chr(34) & "C:\Regression\Results\ftp_cmd.ini" & chr(34))
    Set objShell = Nothing

End Function
于 2013-06-28T18:26:02.680 回答