批处理文件,需要将输出保存为文本文件,以便在windows中使用telnet命令
我正在尝试telnet端口,并希望将输出保存到文本文件中。我已经找到了两个解决方案,但没有一个是通过命令提示符为我工作的 telnet 127.0.0.1 7000-f output.txt telnet 127.0.0.1 7000>>output.txt 另外,分别用1>和2>检查stdout和stderr。还尝试通过2>&1将2(stderr)重定向到1(stdout),如本链接中所述 在批处理文件中运行以下代码后,文件没有任何日志。但是如果它能够远程登录端口,它会存储日志。但我的要求是,如果telnet无法按如下方式连接,则从cmd获取日志: 连接到127.0.0.1…无法在端口7002上打开与主机的连接:连接失败批处理文件,需要将输出保存为文本文件,以便在windows中使用telnet命令,windows,batch-file,cmd,Windows,Batch File,Cmd,我正在尝试telnet端口,并希望将输出保存到文本文件中。我已经找到了两个解决方案,但没有一个是通过命令提示符为我工作的 telnet 127.0.0.1 7000-f output.txt telnet 127.0.0.1 7000>>output.txt 另外,分别用1>和2>检查stdout和stderr。还尝试通过2>&1将2(stderr)重定向到1(stdout),如本链接中所述 在批处理文件中运行以下代码后,文件没有任何日志。但是如果它能够远程登录端口,它会存储日志。但我的要求是,
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
以管理员身份打开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
i、 e
powershell-文件D:\test\telnetit.ps1 somehost.domain.com 23
如果连接不起作用,您将收到如下消息:
连接到端口23上的somehost.domain.com system.Management.Automation.MethodInvocationException
使用“2”参数调用“.ctor”时出现异常:“无法建立连接,因为目标计算机主动拒绝了它10.1.2.3:23”
如果成功,您将获得:
连接到端口23上的somehost.domain.com
已连接。
作为管理员打开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
i、 e
powershell-文件D:\test\telnetit.ps1 somehost.domain.com 23
如果连接不起作用,您将收到如下消息:
连接到端口23上的somehost.domain.com system.Management.Automation.MethodInvocationException
使用“2”参数调用“.ctor”时出现异常:“无法建立连接,因为目标计算机主动拒绝了它10.1.2.3:23”
如果成功,您将获得:
连接到端口23上的somehost.domain.com
已连接。
您无法捕获内置的telnet客户端输出。MS telnet不支持标准输入/输出。最好考虑使用第三方telnet客户端或将套接字与powershell/c结合使用#代码中显示的端口部分在windows中永远不会工作,这些是Unix/Linux命令。此外,-f将只在telnet上记录客户端telnet错误。。。不过,您想运行此程序纯粹是为了端口测试吗?谢谢@npocmaka的评论。@GerhardBarnard for loop在windows中确实可以工作,是的,我已经提到了您的观点(以不同的方式),即-f将只记录客户端telnet错误。是的,我会的,我只想做端口测试。您是否有任何解决方法,这将非常有用?是的,使用powershell。将发布答案。您无法捕获内置的telnet客户端输出。MS telnet不支持标准输入/输出。最好考虑使用第三方telnet客户端或将套接字与powershell/c结合使用#代码中显示的端口部分在windows中永远不会工作,这些是Unix/Linux命令。此外,-f将只在telnet上记录客户端telnet错误。。。不过,您想运行此程序纯粹是为了端口测试吗?谢谢@npocmaka的评论。@GerhardBarnard for loop在windows中确实可以工作,是的,我已经提到了您的观点(以不同的方式),即-f将只记录客户端telnet错误。是的,我会的,我只想做端口测试。您是否有任何解决方法,这将非常有用?是的,使用powershell。我随身带着这个解决方案,我一直在寻找直接用于批处理文件运行命令行的解决方案。无论如何,谢谢。对于批处理,如果无法连接或在连接时回显连接,则可以等待超时和回显失败,但这是一种更可靠的方法。我随身携带此解决方案,我一直在寻找批处理文件直接运行命令行的解决方案。无论如何,谢谢。对于批处理,如果无法连接或在连接时回显连接,则可以等待超时和回显失败,但这是一种更可靠的方法。