Board logo

标题: [文本处理] 求助:如何通过批处理自动上传文件? [打印本页]

作者: dw8201    时间: 2015-5-25 16:04     标题: 求助:如何通过批处理自动上传文件?

各位老师,我想通过批处理将目录中的2个文件存放到FTP服务器上,需要在上传时自动在FTP服务器上新建一个文件夹名称,名称取上传机器的IP,例如:上传机器IP:192.168.21.3,上传时自动在FTP服务器中建个目录“213”,如有重复的就不需要建,覆盖里面的内容就行了,这个想法能通过批处理实现吗?求指点
作者: dizimotong    时间: 2015-5-25 20:04

本帖最后由 dizimotong 于 2015-5-25 20:06 编辑
  1. @echo off
  2. setlocal
  3. set username= ::填写ftp用户名
  4. set passwd= ::填写ftp密码
  5. set ipadr= ::填写ftp的ip地址
  6. set  dir_path= ::填写要上传文件的目录,注意要完整路径,如d:\aa\bb\。
  7. echo.
  8. echo open %ipadr% >ftp.tmp
  9. echo user %username% >>ftp.tmp
  10. echo %passwd%>>ftp.tmp
  11. echo mkdir 213 >>ftp.tmp
  12. echo cd 213 >>ftp.tmp
  13. for /f "tokens=*" %%a in ('dir /a-d/s/b "%dir_path%"') do (
  14. echo send "%%a" >>ftp.tmp
  15. )
  16. echo bye >>ftp.tmp
  17. ftp -n -s:ftp.tmp
  18. del /q /s ftp.tmp>nul
  19. endlocal
复制代码
其实这段代码还不算完整,一个问题是获取本机的ip地址,如果你的主机有多个网卡的话,可能很不方便,必须根据你主机的实际情况编写。你先测试一下这段代码能不能成功上传文件。
作者: dw8201    时间: 2015-5-26 08:53

回复 2# dizimotong


只有一张网卡
作者: gawk    时间: 2015-5-26 09:22

回复 3# dw8201


把以下内容全部删掉:
::
::前面的空格
::后面的文字
作者: dw8201    时间: 2015-5-26 10:04

回复 4# gawk


    谢谢老师的指点,已经测试可以上传,但现在就是新建文件夹的问题,需要根据本机IP来新建,上传机器只有一个网卡,而且没有相同的IP段
作者: dizimotong    时间: 2015-5-26 11:21

本帖最后由 dizimotong 于 2015-5-26 11:23 编辑

发现一个不错的帖子可以提取多网卡的指定ip地址,你测试一下能不能成功提取ip地址。
帖子的地址是http://www.bathome.net/thread-32288-1-1.html
作者: dw8201    时间: 2015-5-26 11:34

回复 6# dizimotong


    我机器只有一块网卡,不需要提取多网卡,我就是想不通要怎样让文件夹名取IP字段为名
作者: terse    时间: 2015-5-26 12:32

本帖最后由 terse 于 2015-5-26 12:39 编辑
  1. @echo off
  2. for /f "tokens=2 delims={}," %%a in ('wmic Nicconfig get IPAddress /value') do (
  3.      for /f %%a in (%%a) do set ip=%%a
  4. )
  5. echo;%ip%
  6. pause
复制代码

作者: gawk    时间: 2015-5-26 12:39

回复 7# dw8201


echo mkdir %IP% >>ftp.tmp
获取IP的方法很多人已经告诉你了
作者: dw8201    时间: 2015-5-26 15:49

谢谢各位,按照各位的方法已经弄好了




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