【问题标题】:Command Prompt Read Variable from file and put inside a Loop命令提示符从文件中读取变量并放入循环中
【发布时间】:2014-08-19 13:19:15
【问题描述】:

我正在尝试使用命令提示符来实现某些目标,我对命令提示符代码有一些了解,但是我感到很困惑,需要对其进行解释。

我想要实现的是

1) 从文本文件中读取变量,例如:

  • Host1.domain.com
  • 主机2
  • Comp1.sub.domain.com
  • 示例4

2) 得到这个变量后,放入一个命令,比如说 Ping(每个都在一个单独的命令窗口中打开):

  • Ping Host1.domain.com
  • ping 主机2
  • ping comp1.sub.domain.com
  • ping 示例4

3) 但是我不想要一个简单的 Ping,我希望将这些主机名放在一个循环中(循环之前在那个单独的命令窗口中):

:循环
ping Host1.domain.com
转到循环

我知道我可以使用 ping -t,但这只是一个示例,并且 ping -t 不会完成这项工作,因为我想测试 DNS 解析,我有其他脚本会不断刷新 DNS 并使用循环。

提前感谢任何可以提供帮助的人。

谢谢

【问题讨论】:

    标签: windows batch-file command command-prompt


    【解决方案1】:

    这工作(测试)-

    echo.:loop >png_tmp.bat
    echo.ping %%1 >>png_tmp.bat
    echo.goto :loop >>png_tmp.bat
    
    for /f "delims=" %%i in (input.txt) do (start png_tmp.bat %%i)
    

    干杯, G

    【讨论】:

    • 嗨,谢谢你的脚本完美运行,但我想知道背后的逻辑。 echo.ping %%1 >>png_tmp.bat 为什么 %1 可以是列表项?谢谢
    • 如您所见,我们正在创建一个接受输入参数的临时批处理文件。然后,我们将您的主机名放入 for 循环中,该循环将启动批处理文件并将主机名作为参数传递。 %1 不能作为列表条目,因为您希望无限期循环 ping,而这在单行命令中是无法实现的。
    猜你喜欢
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-12
    • 2012-07-24
    • 2018-02-26
    相关资源
    最近更新 更多