telnet
自動化の目的でWindows クライアントを使用しないでください。Windows に同telnet
梱されているクライアントは、インタラクティブな使用のみを目的として作成されました。
これにはplink
(PuTTYスイートから)バッチモードで使用します:
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