Ping多台PC并添加文本

时间:2016-07-28 12:19:08

标签: batch-file text ping

我对此很陌生,所以请耐心等待,如果您需要我的信息,请说出来。在此先感谢您的帮助。

我有这个代码,ping不同的PC然后返回,如果他们在线/离线。我想知道你是否可以在bat文件运行ping测试后添加另一个列,因此它旁边有计算机名称。

 @echo off
 if exist C:\tools\computers.txt goto Label1 
 echo.
 echo Cannot find C:\tools\computers.txt
 echo.
 Pause 
 goto :eof

:Label1 
 echo PingTest executed on %date% at %time% > C:\tools\z.txt
 echo ================================================= >> C:\tools\z.txt
 for /f %%i in (C:\tools\computers.txt) do call :Sub %%i notepad C:\tools\z.txt 
 goto :eof

:Sub
echo Testing %1 set state=alive ping -n 1 %1 | find /i "bytes=" || set state=dead echo %1 is %state% >> C:\tools\z.txt

bat文件创建一个显示以下内容的文档;

PingTest于2016年7月28日13:10:28执行

99.1.82.28还活着

99.1.82.100还活着

等。

如果可能,我希望运行bat文件,以便显示此内容;

bat文件创建一个显示以下内容的文档;

PingTest于2016年7月28日13:10:28执行

计算机1:99.1.82.28还活着

计算机2:99.1.82.100还活着

等。

-

感谢任何帮助&对此的指导。

感谢。

1 个答案:

答案 0 :(得分:0)

您可以尝试此解决方案:

git commit

编辑:2016年7月29日@ 12:48

另一种多色版本:特别感谢 ICARUS 的色彩功能(--_°)

enter image description here

@echo off
Title Ping Test
set "URLS=URLS.txt"
set "LogFile=PingResults.txt"
If exist %LogFile% Del %LogFile%
(
    echo ******************************************************
    echo   PingTest executed on %Date% @ Time %Time% 
    echo ******************************************************
    echo(
) > %LogFile%

Setlocal EnableDelayedExpansion
for /f "usebackq delims=" %%a in ("%URLS%") do (
    for /f "tokens=2 delims=[]" %%b in ('ping -n 1 %%a') do set "ip=%%b"
        ping -n 1 %%a>nul && set "msg=%%a : !ip! ALive ok" || set "msg=%%a : !ip! Dead failed to respond"
        echo !msg!
        echo !msg! >> %LogFile%
    ) 
)
EndLocal
Start "" %LogFile%
pause>nul & exit

编辑:2016年8月23日更新

http://pastebin.com/zjYwSqUM