将批处理文件结果输出到文本文件和屏幕本身

时间:2015-03-07 11:31:01

标签: windows batch-file logging cmd text-files

我在批处理文件中写入了一个Mass IP地址pinger,它在文本文件中读取IP,然后在CMD屏幕上告诉用户IP是“OK”还是“无法响应”... < / p>

@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上的所有解决方案都不会显示CMD屏幕上的输出,而是将所有输出直接转到文本文件。

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

感谢。

1 个答案:

答案 0 :(得分:1)

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

@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被重定向到控制台。第二个没有重定向,完整的for命令已被重定向,以避免每行写入对输出文件的打开/关闭操作。