如何制作一个批处理文件来 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 多台取决于用户输入的计算机?的主要内容,如果未能解决你的问题,请参考以下文章