将batch file结果输出到文本文件并输出到屏幕本身

我有一个批量文件写在一个批量文件,读取文本文件中的IP,然后告诉用户在CMD屏幕上,如果IP是“OK”或“无法响应”…

@echo off for /f "delims=" %%a in (iplist.txt) do ping -n 1 %%a >nul && (echo %%a ok) || (echo %%a failed to respond) Pause 

这一切工作正常,除了我想也输出什么在CMD屏幕上的文本文件…

Stackoverflow上的所有解决scheme使CMD屏幕上的输出不显示,而是使所有输出直接转到文本文件。

我需要它在CMD屏幕和文本文件上显示输出。

谢谢。

最简单的方法是写两个地方

 @echo off setlocal enableextensions enabledelayedexpansion (for /f "usebackq delims=" %%a in ("iplist.txt") do ( ping -n 1 "%%~a" >nul && set "msg=%%~a ok" || set "msg=%%~a failed to respond" >con echo(!msg! echo(!msg! )) > "logfile.txt" Pause 

你可以看到第一个echo被重定向到控制台。 第二个没有重定向,full for命令已被重定向,以避免输出文件上每行写入的打开/关闭操作。