判断FTP文件夹是否存在并自动上传本地文件。

本文介绍如何使用批处理脚本实现自动判断FTP服务器上是否存在指定文件夹,并在必要时创建,然后将本地文件夹内容上传至FTP的2018XXXX格式的子文件夹。内容包括设置变量、文件夹命名规则、FTP目录文件名匹配方法、使用dir和put命令进行文件传输,以及日志记录。欢迎分享更优的FTP文件夹判断和上传方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近由于公司需要上午某个时间下午某个时间把文件夹里的内容上传到ftp的文件夹里手工上传有些墨迹就想写个脚本顺便学习下
1:把本地的一个固定文件夹的内容上传到FTP某个文件夹的2018XXXX文件夹内
2:如果没有这个文件夹就创建
3:上传文件至2018XXXX
由于我用的是windows操作系统 就想到了批处理 判断ftp下文件夹是否存在现在只想到获取到ftp目录下的文件列表名,然后用for语句 匹配2018XXXX (如果有更好的方法欢迎留言)再重新连接FTP并上传文件。
代码如下

@echo off&&setlocal enabledelayedexpansion
set dirname=%date:~0,4%%date:~5,2%%date:~8,2%
set "a=0"
set ftpname=autoftp.cfg
set ip=192.168.1.1
set user=test
set passwd=test
set inputpath=/
set lpath=D:\test
echo open !ip!>%ftpname%
echo !user!>>%ftpname%
echo !passwd!>>%ftpname%
echo cd !inputpath!>>%ftpname%
echo dir>>%ftpname%
echo quit>>%ftpname%
ftp -s:"%ftpname%">ftp.log
echo 第一次获取目录名称结束
echo ==============开始判断文件夹是否存在===========
for /f "delims=" %%i in (ftp.log) do (
set "filename=%%i"
set "b=!filename:~-9,8!"
if "!dirname!"=="!b!" (set a=1) 
)
if "!a!"=="1" (
echo open !ip!>%ftpname%
echo !user!>>%ftpname%
echo !passwd!>>%ftpname%
echo cd !inputpath!>>%ftpname%
echo =============文件夹存在进入该文件夹================
echo cd %dirname%>>%ftpname%
echo lcd !lpath!>>%ftpname%
dir !lpath! /b >putname.txt
for /f "delims=" %%a in (putname.txt) do (
set "putname=%%a"
echo put !putname!>>%ftpname%
)
echo quit>>%ftpname%
echo on
ftp -s:"%ftpname%">ftp.log) else (
echo open !ip!>%ftpname%
echo !user!>>%ftpname%
echo !passwd!>>%ftpname%
echo ===============文件不存在创建并进入该文件夹==================
echo cd !inputpath!>>%ftpname%
echo mkdir %dirname%>>%ftpname%
echo cd %dirname%>>%ftpname%
echo lcd !lpath!>>%ftpname%
dir !lpath! /b >putname.txt
for /f "delims=" %%b in (putname.txt) do (
set "putname=%%b"
echo put !putname!>>%ftpname%
)
echo quit>>%ftpname%
echo on
ftp -s:"%ftpname%">ftp.log
)
echo 上传完成
start ftp.log
pause
exit

使用说明:
1:根据需要设置ip user passwd inputpath lpath 变量
2:创建的文件夹格式为 xxxxxxxx “如:20181120”
3:判断文件名的变量是set “b=!filename:~-9,8!” 可根据需要修改匹配文件名(xxxxxxxx固定日期格式)可参考字符截取*https://blog.youkuaiyun.com/xcntime/article/details/51690874
4:有的FTP不支持mput 所以用了dir /b 获取本地文件名再put上传。
4:传输的过程可在log日志中查看
5:传输的过程显示还研究欢迎大佬留言。
6:有关于 FTP上文件夹的判断,有更好方式欢迎留言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值