我正在尝试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
答案 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.