如何制作一个批处理文件来 ping 多台取决于用户输入的计算机?

Posted

技术标签:

【中文标题】如何制作一个批处理文件来 ping 多台取决于用户输入的计算机?【英文标题】:How to make a batch file to ping multiple computers that depends on user input? 【发布时间】:2018-07-28 17:36:53 【问题描述】:

我最近(过去 24 小时内)开始学习如何创建批处理文件来帮助自动化一些繁琐的任务。

这个项目的重点是能够检查特定站点的多台计算机上的连接,而无需手动 ping 每台计算机

我正在尝试弄清楚如何制作一个批处理文件来执行以下操作。

询问用户“您在哪个网站上工作? 用户输入站点 ID 询问用户“您要 ping 哪些计算机?” 用户输入计算机号码(这是棘手的部分)

用户将输入 2 个或更多 dns 后缀 他们将如何分隔 dns 后缀?使用空格或逗号?(111,222 或 111 222)或者在输入每个 dns 后缀后该行是否必须中断。如果是这样,它将如何知道用户何时完成?

显示每个 dns 名称的 ping 结果

注意:整个 DNS 名称将类似于 123tmnpc111。 tmnpc部分总是一样的,只是前缀和后缀会有所不同

因此,当执行 ping 时,它需要类似于

 ping %siteid%tmnpc%pcid1% -n 1 -w 2000
 ping %siteid%tmnpc%pcid2% -n 1 -w 2000
 ping %siteid%tmnpc%pcid3% -n 1 -w 2000

这是我在 ping 一个 DNS 名称时测试的简单方法。但我不知道如何使这个工作适用于多个(和可变的)DNS 名称。

@echo off

echo Which Site Are You Working On?
echo/

set /p siteid=">> "
echo/

echo Which Computers Do You Want To Ping?
echo/

set /p pcid=">> "
echo/
cls

ping %siteid%pc%pcid% -n 1 -w 2000

pause > nul

如果有人能指出我正确的方向,将不胜感激。 谢谢

【问题讨论】:

采用两个输入而不是采用一个由空格分隔的单个输入怎么样。而且我的输入超过 2,当用户输入 0 或其他内容时,您可能会喜欢停止。祝你好运。 ***.com/questions/23600775/… 这会有所帮助。 【参考方案1】:

使用for 循环处理列表

set /p "siteid=Which Site Are You Working On? >> "
echo Which Computers Do You Want To Ping?
set /p "pcid=Which Computers Do You Want To Ping? >> "
for %%a in (%pcid%) do (    
  ping %siteid%pc%%a -n 1 -w 2000
)
pause > nul

计算机列表可以用逗号或空格(或混合)分隔。

【讨论】:

这很完美!老实说,我对这最终变得多么简单感到惊讶。出于某种原因,我有各种疯狂的代码行的想法,但这很棒。谢谢!

以上是关于如何制作一个批处理文件来 ping 多台取决于用户输入的计算机?的主要内容,如果未能解决你的问题,请参考以下文章

制作批处理启动文件

连接mysql慢或者多台服务器ping不通mysql

在我的情况下,如何使用批处理文件脚本制作数组列表?

如何将服务器中文件夹或磁盘映射到多台个人电脑实现共享

如何制作一个批处理脚本来创建指定数量的具有随机名称和指定扩展名的文件? [复制]

通过批处理文件连接 Oracle