1

サーバーに対してコマンドを実行する簡単なスクリプトを取得しました-簡単に:

//Create shell
set WshShell=CreateObject("WScript.Shell")
WshShell.run "cmd.exe"

//send commands
WshShell.SendKeys "telnet IP_ADDRESS"
WshShell.Sendkeys "dir"

サーバーは、取得したいフィードバックを提供します。最初の行を変数にキャプチャし、その変数を出力して確認するだけです。

手伝ってくれますか?ありがとう。

4

2 に答える 2

0

telnet自動化の目的でWindows クライアントを使用しないでください。Windows に同telnet梱されているクライアントは、インタラクティブな使用のみを目的として作成されました。

これにはplinkPuTTYスイートから)バッチモードで使用します:

plink.exe -telnet -batch IP_ADDRESS dir

このツールはインストールを必要としないため、スクリプトと一緒に簡単に展開できます。

head/tailを使用してバッチ ファイルで実行するか、メソッドを使用して VBScript で実行すると、 StdOut から読み取るExecことができます。

addr     = "62.39.x.x"
port     = 24
timeout  = 300 'seconds
timedOut = False

cmdline = "echo ""mute near get"" | plink.exe -telnet -batch " & addr & " -P " & port

Set sh = CreateObject("WScript.Shell")

'change working directory to directory containing script and plink executable
Set fso = CreateObject("Scripting.FileSystemObject")
sh.CurrentDirectory = fso.GetParentFolderName(WScript.ScriptFullName)

'wait until command completes or timeout expires
expiration = DateAdd("s", timeout, Now)
Set cmd = sh.Exec("%COMSPEC% /c " & cmdline)
Do While cmd.Status = 0 And Now < expiration
  WScript.Sleep 100
Loop
If cmd.Status = 0 Then
  cmd.Terminate
  timedOut = True
End If

WScript.Echo  cmd.StdOut.ReadAll

If cmd.ExitCode <> 0 Then
  WScript.Echo "Command terminated with exit code " & cmd.ExitCode & "."
  WScript.Echo cmd.StdErr.ReadAll
  WScript.Quit 1
ElseIf timedOut Then
  WScript.Echo "Command timed out."
  WScript.Echo cmd.StdErr.ReadAll
  WScript.Quit 2
End If
于 2013-05-15T10:15:02.153 に答える