windows 使用批处理文件循环遍历列表

kcrjzv8t  于 2023-11-21  发布在  Windows
关注(0)|答案(1)|浏览(249)

我试图写一个批处理文件,以自动化的过程中重新启动一些IP摄像机,我在服务器上。
我已经成功地得到了一个批处理文件重新启动一台相机,通过ftp,但我有麻烦理解如何做到这一点的每一个ip范围。
我目前有:

  1. open IP
  2. user
  3. pass
  4. quote site reboot
  5. quote site reboot
  6. quit
  7. echo

字符串
保存在.txt文件(ftp.txt)中,我使用.bat文件称之为:

  1. @echo off
  2. set user = Username
  3. set pass = Password
  4. ftp -s:ftp.txt


我想有一个使用的IP地址列表,然后有 bat 脚本执行重新启动一个接一个,并等待2分钟,然后再移动到下一个。
我想我需要把列表放在.txt文件中,在bat中使用for循环。

  1. set ip = iplist(??) <-- Part causing confusion
  2. for each ip in ftp.txt
  3. open ip
  4. user
  5. pass
  6. quote site reboot
  7. quote site reboot
  8. pause 2 min
  9. quit


如有任何帮助,将不胜感激!

vd8tlhqk

vd8tlhqk1#

我会这么做
修改脚本(script00.bat):

  1. @echo off
  2. for /F %%f in (cameras.txt) do (
  3. ftp -s:ftp.txt %%f
  4. )

字符串

备注

1.我删除了2 env vars(user / pass)设置,因为它们无论如何都不会被使用

  1. [SS64]: FOR /F用于遍历 cameras.txt 文件的每一行
    1.注意 FTP 的额外参数(它是 IP
    1.将所有摄像机 IP 存储在名为 * cameras.txt * 的文件中(每行**一个 IP
    1.由于第三个注解,IP 作为参数传递给 FTP,因此在 ftp.txt 文件中不再需要它,因此您应该删除第一行(open IP
    发布其他文件内容。
  • cameras.txt*:
  1. mirrors.kernel.org
  2. ftp.kr.freebsd.org

  • ftp.txt*:
  1. anonymous
  2. pass
  3. quote site reboot
  4. quote site reboot
  5. quit
  6. echo

输出

  1. [cfati@cfati-5510-0:e:\Work\Dev\StackOverflow\q045327836]> script00.bat
  2. Connected to mirrors.pdx.kernel.org.
  3. 220 Welcome to mirrors.kernel.org.
  4. 200 Always in UTF8 mode.
  5. User (mirrors.pdx.kernel.org:(none)):
  6. 331 Please specify the password.
  7. 230 Login successful.
  8. ftp> quote site reboot
  9. 550 Permission denied.
  10. ftp> quote site reboot
  11. 550 Permission denied.
  12. ftp> quit
  13. 221 Goodbye.
  14. Connected to daemon.kr.freebsd.org.
  15. 220 daemon.kr.freebsd.org FTP server (Version 6.00LS) ready.
  16. 500 OPTS UTF8 ON: command not understood.
  17. User (daemon.kr.freebsd.org:(none)):
  18. 331 Guest login ok, send your email address as password.
  19. 230 Guest login ok, access restrictions apply.
  20. ftp> quote site reboot
  21. 500 SITE REBOOT: command not understood.
  22. ftp> quote site reboot
  23. 500 SITE REBOOT: command not understood.
  24. ftp> quit
  25. 221 Goodbye.


我觉得这就是你想要的
有关 FTP 命令的更多详细信息,请查看:[MS.Learn]: ftp

展开查看全部

相关问题