Board logo

标题: [网络连接] Bat 如何在批处理的过程中调用文本文件中的随机一行字符串 [打印本页]

作者: wodekao    时间: 2021-8-15 13:37     标题: Bat 如何在批处理的过程中调用文本文件中的随机一行字符串

本帖最后由 wodekao 于 2021-8-15 17:05 编辑

UPDATEDNS.bat

netsh interface ip set dns "以太网" static 8.8.8.8 primary


DNS.txt

114.114.114.114
223.5.5.5
180.76.76.76
119.29.29.29
1.2.4.8
117.50.11.11

需要在运行 UPDATEDNS.bat 的时候  

netsh interface ip set dns "以太网" static 这个地方需要调用DNS.txt中随机的一行内容 primary


如果把这些内容
114.114.114.114
223.5.5.5
180.76.76.76
119.29.29.29
1.2.4.8
117.50.11.11
放到UPDATEDNS.bat文件中进行随机调用,如何实现?
作者: idwma    时间: 2021-8-15 15:55

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (dns.txt) do set/a n+=1
  3. set/a nn=%random%%%!n!+1
  4. set n=
  5. for /f "delims=" %%a in (dns.txt) do (
  6. set/a n+=1
  7. if "n"=="nn" set nnn=%%a&&goto :n
  8. )
  9. :n
  10. netsh interface ip set dns "以太网" static %nnn% primary
  11. pause
复制代码

作者: wodekao    时间: 2021-8-15 17:01

回复 2# idwma

运行错误,提示参数错误,对象已在列表中.
作者: idwma    时间: 2021-8-15 17:20

回复 3# wodekao
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (dns.txt) do set/a n+=1
  3. set/a nn=%random%%%!n!+1
  4. set n=
  5. for /f "delims=" %%a in (dns.txt) do (
  6. set/a n+=1
  7. if "n"=="nn" set nnn=%%a&&goto :n
  8. )
  9. :n
  10. netsh interface ip delete dnsservers "以太网" all
  11. netsh interface ip set dns "以太网" static %nnn% primary
  12. pause
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2