批处理向FTP上传具有指定属性的文件(增量备份),ftp增量


怎样实现对一个目录里的几个文件自动上传FTP时只上传有归档属性的文件,然后FTP上传成功后自动清除(本机)刚上传文件的归档属性,批处理可以实现到吗?有点类似于对文件增量备份的功能吧

@echo off
rem 指定FTP用户名
set ftpUser=FTPUSERNAME
rem 指定FTP密码
set ftpPass=FTPPASSWORD
rem 指定FTP服务器地址
set ftpIP=192.168.0.2
设置待上传的本地文件夹目录
set SrcFolder=C:/test

dir /b /aa-d>nul 2>nul
if %errorlevel% equ 1 (
 echo No archiving file to FTP
 pause
 goto :eof
)
set FtpFile=%temp%/TempFTP.txt
>"%FtpFile%" echo,%ftpUser%
>>"%FtpFile%" echo,%ftpPass%
>>"%FtpFile%" echo bin
for /f "tokens=*" %%a in ('dir /b /aa-d') do (
 >>"%FtpFile%" echo put "%SrcFolder%/%%a"
)
>>"%FtpFile%" echo bye
start ftp -v -i -s:"%FtpFile%" %ftpIP%
ping -n 10 127.1>nul
attrib -a *.*

想做一个批处理 将指定文件用FTP上传

我试了一下,终于知道楼主少写了什么。
调用的时候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的文件路径等,自己修改吧。
 

怎用批处理将指定文件或文件夹上传至FTP指定目录

参考一下:@echo offecho 123>ftp.txtecho 123>>ftp.txtecho bin>>ftp.txtprompt>>ftp.txtecho mput *.*>>ftp.txtecho bye>>ftp.txtftp -i -s:ftp.txt 192.168.1.200把上述代码保存为bat文件,放到C:\\123中执行。
 

评论关闭