实现FTP整站上传的批处理代码,ftp上传批处理代码
实现FTP整站上传的批处理代码,ftp上传批处理代码
@echo off rem 设置FTP服务器地址 set ftpIP=192.168.0.2 rem 设置FTP用户名 set ftpUser=MyUser rem 设置FTP密码 set ftpPass=MyPass rem 设置待上传的本地文件夹目录 set UpFolder=C:/test rem 生成待上传的本地文件夹列表 type nul>%temp%/FolderList.txt for /r "%UpFolder%" %%a in (.) do ( set FullName=%%a setlocal enabledelayedexpansion set FolderName=!FullName:%UpFolder%=! set FolderName=!FolderName:~1,-2! echo,!FolderName!>>%temp%/FolderList.txt endlocal ) >"%temp%/ftpFile.txt" echo,%ftpUser% >>"%temp%/ftpFile.txt" echo,%ftpPass% >>"%temp%/ftpFile.txt" echo bin >>"%temp%/ftpFile.txt" ( for /f "usebackq tokens=*" %%a in ("%temp%/FolderList.txt") do ( echo cd / echo mkdir "%%a" echo cd "/%%a" echo mput "%UpFolder%/%%a/*.*" ) ) >>"%temp%/ftpFile.txt" echo ! rd /s /q "%UpFolder%" >>"%temp%/ftpFile.txt" echo ! md "%UpFolder%" >>"%temp%/ftpFile.txt" echo bye ftp -v -i -s:"%temp%/ftpFile.txt" %ftpIP%
我试了一下,终于知道楼主少写了什么。
调用的时候FTP要加 -i 选项(取消交互性提示)。即批处理中用如下调用方式:
ftp -i -s:ftp.txt
-i Turns off interactive prompting during multiple file transfers.
ftp.txt内容为:
open 127.0.0.1
11
11
put c:\1.txt
bye
楼主试试吧,应该能解决。
去掉-i参数,批处理就会一直循环。
其实用VBS脚本也可以啊,用sendkeys发送FTP命令,比较简单。
——————————————————————————————
你的 ftp.txt 与 批处理文件 是放在同一个目录下吗??
我已经试过OK的。
算了,给你个完整版吧,也不用什么txt文件了。
直接将下面的代码保存为 test.bat 运行:
@echo off
color 0a
title FTP自动下载
if exist "%temp%\ftpfile" del "%temp%\ftpfile"
echo open 127.0.0.1>"%temp%\ftpfile"
echo 11>>"%temp%\ftpfile"
echo 11>>"%temp%\ftpfile"
echo put c:\1.txt>>"%temp%\ftpfile"
echo bye>>"%temp%\ftpfile"
ftp -i -s:"%temp%\ftpfile"
::del "%temp%\ftpfile"
exit
里面的ip地址,用户名,密码,put的文件路径等,自己修改吧。
rem -----------脚本开始---------------
@echo off
set ftpfile=putfiles.ftp
set logfile=putfiles.log
echo open 192.168.0.1 > "%ftpfile%"
rem 把下面行中的 username和password改为你的用户名和密码
echo user username password >> "%ftpfile%"
rem ------------------------------
echo bin >> "%ftpfile%"
rem 进入FTP server 中的"X"目录
echo cd X >> "%ftpfile%"
rem ------------------------------
rem 进入本地C盘根目录
echo lcd c:\ >> "%ftpfile%"
rem ------------------------------
echo put A.TXT >> "%ftpfile%"
echo quit >> "%ftpfile%"
echo -------------------------------- >> "%logfile%"
date /t >> "%logfile%"
time /t >> "%logfile%"
echo -------------------------------- >> "%logfile%"
ftp -n < "%ftpfile%" >> "%logfile%"
del "%ftpfile%"
@echo on
rem -----------脚本结束---------------
在Windows XP(本地),Ubuntu(FTP Server) 测试通过。
评论关闭