在批处理文件中使用netcat,为什么即使重定向时输出仍保留在控制台中?

时间:2018-04-20 06:43:23

标签: batch-file netcat

我有一个批处理文件和以下代码的摘录。 该代码用于测试特定主机上的端口。

下面显示的代码有一个故意错误(www w .google.com)我试图重定向到文件以供日后处理。即使我将所有输出重定向到文件,控制台中仍会显示以下内容:

" wwww.google.com:转发主机查找失败:h_errno 11001:HOST_NOT_FOUND"

我想在文件中捕获此错误而不是将其显示到控制台...不确定为什么重定向不起作用?

@echo off
set tempFile=%temp%\temp

call :CheckPort "wwww.google.com" "80"
GOTO :EOF

:CheckPort
nc -z %~1 %~2^>%tempFile% 2^>^&1
EXIT /B 0

1 个答案:

答案 0 :(得分:1)

字符的转义会破坏管道。而是做:

nc -z %~1 %~2 > %tempFile% 2>&1

会将STDERR重定向到STDOUTSTDOUT到文件,这意味着两者都会转到文件。