批处理文件,需要在windows中将输出保存到telnet命令的文本文件中

时间:2017-05-29 15:01:16

标签: windows batch-file cmd

我正在尝试telnet端口并希望将输出保存到文本文件中。我已经查看并获得了两个解决方案,但没有一个通过命令提示符为我工作。

telnet 127.0.0.1 7000 -f output.txt

telnet 127.0.0.1 7000>> output.txt

另外,检查此link是否为stdout和stderr为1>和2>分别。还尝试将2(stderr)重定向到1(stdout)到2>& 1,如此链接中所述。

在批处理文件中运行以下代码后,文件没有任何日志。但它存储日志,如果它能够telnet端口。但我的要求是如果telnet无法按如下方式连接到连接,则从cmd获取日志:

连接到127.0.0.1 ...无法打开与主机的连接,在端口7002上:连接失败

for port in 7000 7001 7002 
 do
  start cmd.exe /k "telnet 127.0.0.1  $port -f C:\Users\rohit.bagjani\Desktop\result\telnetresult.txt"
done

1 个答案:

答案 0 :(得分:0)

以管理员身份打开cmd.exe并运行:

powershell set-executionpolicy Bypass

创建一个新文件并将其命名为port-test.ps1

将其粘贴在其中。

param(
    [string] $rHost = $1,
    [int] $port = $2
     )

   write-host "Connecting to $rHost on port $port"
try {
  $socket = new-object System.Net.Sockets.TcpClient($rHost, $port)
} catch [Exception] {
  write-host $_.Exception.GetType().FullName
  write-host $_.Exception.Message
  exit 1
}

write-host "Connected.`n"
exit 0

现在你可以打开cmd.exe并像这样运行它:

powershell -file D:\test\port-test.ps1 hostnamename portnr

即     powershell -file D:\ test \ telnetit.ps1 somehost.domain.com 23

如果连接不起作用,您将收到如下消息:

Connecting to somehost.domain.com on port 23 system.Management.Automation.MethodInvocationException Exception calling ".ctor" with "2" argument(s): "No connection could be made because the target machine actively refused it 10.1.2.3:23"

如果成功,你会得到:

Connecting to somehost.domain.com on port 23 Connected.