将批处理文件结果输出到文本文件和屏幕本身
Output Batch File Results to Text File AND to the screen itself
我在批处理文件中编写了一个 Mass IP 地址 pinger,它读取文本文件中的 IP,然后在 CMD 屏幕上告诉用户 IP 是 "OK" 还是 "Failed to respond" ...
@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 屏幕上的内容输出到文本文件...
Whosebug 上的所有解决方案都使 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
被重定向到控制台。第二个没有重定向,完整的 for
命令已被重定向以避免对输出文件的每一行写入进行 open/close 操作。
我在批处理文件中编写了一个 Mass IP 地址 pinger,它读取文本文件中的 IP,然后在 CMD 屏幕上告诉用户 IP 是 "OK" 还是 "Failed to respond" ...
@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 屏幕上的内容输出到文本文件...
Whosebug 上的所有解决方案都使 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
被重定向到控制台。第二个没有重定向,完整的 for
命令已被重定向以避免对输出文件的每一行写入进行 open/close 操作。