我有一个批量文件写在一个批量文件,读取文本文件中的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
命令已被重定向,以避免输出文件上每行写入的打开/关闭操作。