Board logo

标题: [文件操作] [已解决]BAT如何实现ftp批量上传文件? [打印本页]

作者: zhou926    时间: 2013-3-26 11:04     标题: [已解决]BAT如何实现ftp批量上传文件?

本帖最后由 zhou926 于 2013-4-16 19:13 编辑

我要将本地ftp目录下的111.txt和222.txt上传到192.168.1.2-192.168.1.10(假设这9个IP是没有规律的IP)这9台电脑上去(用户名:ftp,密码:123456,端口:235),9台电脑的ftp用户名密码都一样,用批处理怎么写啊
作者: BAT-VBS    时间: 2013-3-26 13:04

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set ftpUser=ftp
  4. set ftpPass=123456
  5. set ftpPort=235
  6. for /l %%a in (2,1,10) do (
  7.     set ftpFile=%temp%\TempFTP_%%a.txt
  8.     >"!ftpFile!" (
  9.         echo open 192.168.1.%%a %ftpPort%
  10.         echo,%ftpUser%
  11.         echo,%ftpPass%
  12.         echo bin
  13.         echo mput 111.txt 222.txt
  14.         echo bye
  15.     )
  16.     start ftp -v -i -s:"!ftpFile!"
  17. )
复制代码

作者: zhou926    时间: 2013-3-26 15:12

回复 2# BAT-VBS


    这个IP如果是一组没有规律的IP就不能这样写吧,如果是一组没有规律的IP要怎么写?
作者: BAT-VBS    时间: 2013-3-26 15:58

回复 3# zhou926
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set ftpUser=ftp
  4. set ftpPass=123456
  5. set ftpPort=235
  6. for /f %%a in (IP.txt) do (
  7.     set ftpFile=%temp%\TempFTP_%%a.txt
  8.     >"!ftpFile!" (
  9.         echo open %%a %ftpPort%
  10.         echo,%ftpUser%
  11.         echo,%ftpPass%
  12.         echo bin
  13.         echo mput 111.txt 222.txt
  14.         echo bye
  15.     )
  16.     start ftp -v -i -s:"!ftpFile!"
  17. )
复制代码

作者: zhou926    时间: 2013-3-26 16:50

回复 4# BAT-VBS


    用你的批处理跑了一下,一直报错登录失败,但是我按照批处理里的顺序在命令行输入一遍,又是没问题,那个open登录后,输入用户名和密码不是用逗号分隔吧,可能是这里的问题
作者: BAT-VBS    时间: 2013-3-26 17:03

回复 5# zhou926


把代码生成的%temp%\TempFTP_%%a.txt文件传上来看看
作者: zhou926    时间: 2013-3-26 17:40

回复 [url=http://www.bathome.net/redirect.php?goto=findp[attach]6214[/attach][attach]6214[/attach]ost&pid=128112&ptid=23243]6#[/url] BAT-VBS
作者: BAT-VBS    时间: 2013-3-26 17:44

回复 7# zhou926


    文件呢?压缩一下传上来啊
作者: zhou926    时间: 2013-3-26 17:52

回复 8# BAT-VBS


    [attach]6215[/attach]
作者: BAT-VBS    时间: 2013-3-26 19:00

回复 9# zhou926


不知道你上传的是什么玩意。请再看看6楼
如果你用的4楼的代码,把你的IP.txt的内容压缩一下传上来
作者: zhou926    时间: 2013-3-27 15:58

回复 10# BAT-VBS 我的IP是按这样写的
作者: BAT-VBS    时间: 2013-3-29 15:03

回复 11# zhou926


到%temp%目录下面,把代码生成的文件TempFTP_%%a.txt的内容贴出来看看。
另外,你确定是用的4楼的代码吗?
作者: zhou926    时间: 2013-3-29 16:09

回复 12# BAT-VBS


    确定啊,用户名密码端口我很确定没问题,你用4楼的代码运行成功了吗
作者: BAT-VBS    时间: 2013-3-29 23:22

回复 13# zhou926


    请把完整的报错信息贴出来看看,不要截图。
作者: zhou926    时间: 2013-4-2 10:19

本帖最后由 zhou926 于 2013-4-8 08:32 编辑

回复 14# BAT-VBS


    你还要什么信息啊,生成的就这两个文件啊,没有其他文件了,你说的报错文件是TempFTP_%%a.txt这个文件吧
作者: CrLf    时间: 2013-4-2 20:01

本帖最后由 CrLf 于 2013-4-2 20:02 编辑

试试这样:
  1. @echo off
  2. set "ftpUser=ftp"
  3. set "ftpPass=123456"
  4. set "ftpPort=235"
  5. setlocal enabledelayedexpansion
  6. for /f %%a in (IP.txt) do (
  7.     set ftpFile=!temp!\TempFTP_%%a.txt
  8.     >"!ftpFile!" (
  9.         echo open %%a !ftpPort!
  10.         echo,!ftpUser!
  11.         echo,!ftpPass!
  12.         echo bin
  13.         echo put "111.txt"
  14.         echo put "222.txt"
  15.         echo ^^!
  16.     )
  17.     start ftp -v -i -s:"!ftpFile!"
  18. )
复制代码

作者: zhou926    时间: 2013-4-16 19:12

回复 16# CrLf


    你的这段代码可以,非常感谢!!




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