想做一个批处理 将指定文件用FTP上传
ftp是用SERV-U建的 想把c:\1.txt 放到FTP上
FTP地址假设为127.0.0.1
账户:11
密码:11
请问能实现不
我做好的批处理 一直循环,只能手动在CMD里实现 不知道哪儿去了问题
谢谢
建立ftp文件 内容为:
open 127.0.0.1
22
22
put
bye
再用 ftp -s:ftp.txt 这样的 根本调用不出来 麻烦你们试下再说··谢谢 展开
时间晚了好久,不知道到还有用没,希望有用的可以拿来参考
目的监控路径下面文件,上传到指定FTP。上传完毕后文件备份。
方法个人运用两个bat第一个监控,第二个FTP上传
1.监控。放到你要监控的文件夹路径下面建立start.bat 下面是我放的内容。
@echo off
:memu
for /f "delims=" %%a in ('dir /a-d/b *.zip') do (
if not [%%a]==[] (
echo %time%发现:%%a
)
)
start "" Q:\BCPbackup\ftpceshi\ftpuploud.bat
ping 127.0.1 -n 60 >nul
goto memu
在段中,你要监控的文件类型就是*.zip。可以改成你需要的比如*.jpg等
若发现了你需要的文件则则运行start 后边的文件,这个路径可以自己配置,运行的bat就是FTP上传的批处理
ping 127.0.1 -n 60 >nul 是循环时间,60秒后goto memu 再次从头开始
2.批处理FTP上传这里我用的名称是ftpuploud.bat。内容如下
@Echo Off
Echo open 192.168.110.122 21 >ftp.up
Echo ceshiftp>>ftp.up
Echo 123456>>ftp.up
Echo Cd .\ >>ftp.up
Echo prompt off>>ftp.up
Echo mput "Q:\BCPbackup\ftpceshi\*.zip">>ftp.up
Echo bye>>ftp.up
FTP -s:ftp.up
move *.zip Q:\BCPbackup\ftpceshi\backup
del ftp.up /q
exit
一次是连接FTP 输入的是FTP地址 ,用户名,密码。
这里修改成你要监控的文件路径以及文件名称。可以改成*.jpg都行我穿的都是zip
上传文件后退出FTP,然后移动文件到备份路径
删除临时文件,退出
然后1在监控,有文件后启动FTP上传完成后退出
这里我没有找到决绝办法的是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自动化脚本,你可以参考下
1.批处理名称不能叫ftp.bat其它均可,如autoftp.bat
2.-s后面的文件最好用绝对路径
3.open后面最好要用合法的公有IP或私有IP地址,不要用本地回环地址127.0.0.1
上面链接的脚本我经常用的,你弄不出来是你自己的问题,先检查上面三个条件,如果还有错误,按错误提示一步步检查