2017-02-17 79 views
0

对于一般的计算器和编码是新的。我能够编写一个批处理文件来解析网络中s​​onos播放器的一组IP地址,我还能够编写一个单独的批处理文件,使用这些IP地址执行HTTP命令以关闭无线网络在所有单元上,但我必须手动输入第一批中的所有IP地址。我想知道是否有方法可以将IP地址自动输入到第二个批处理文件中,或者如果有办法,我可以编写一个批处理文件,它将一次完成所有工作。下面的例子只涉及2个IP,现实世界我需要这个与20+以上的工作,所以这就是为什么我想找到一种方法来自动输入的IPsCMD/Batch:如何在另一组命令中使用FOR/F循环的输出

任何帮助,非常感谢!

第一批:GetIPlist.bat

FOR /F "tokens=3 delims= " %%a in ('findstr "IP Address: *[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*" AboutMySonos.txt') DO echo %%a 

它返回的IP名单如下:

192.168.2.174 
192.168.2.24 

第二批:SonosWifiDefeat.bat

@echo off 

start "http://IpAddress:1400/wifictrl?wifi=persist-off" 
ping 1.1.1.1 -n 1 -w 1000 > nul 
start "http://IpAddress:1400/wifictrl?wifi=persist-off" 

回答

1

两者结合起来!

FOR /F "tokens=3 delims= " %%a in ('findstr "IP Address: *[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*" AboutMySonos.txt') DO (
    start "http://%%a:1400/wifictrl?wifi=persist-off" 
    ping %%a -n 1 -w 1000 > nul 
    start "http://%%a:1400/wifictrl?wifi=persist-off" 
) 

,或者甚至更好,使用PowerShell所以你不必打开start百浏览器窗口的更多信息:

Select-String -path .\AboutMySonos.txt -pattern "IpAddress: (.*)" | ForEach { 
    ip=$_.Matches.Groups[1].Value 
    Invoke-RestMethod "http://$ip:1400/wifictrl?wifi=persist-off" 
    ping $ip -n 1 -w 1000 > nul 
    Invoke-RestMethod "http://$ip:1400/wifictrl?wifi=persist-off" 
} 
相关问题