写了下面的脚本,想上传整个文件夹到ftp上,文件夹下还有子文件夹,可是一碰到子文件夹,就不能上传了
set remote-directoriy=/mine/directoriy
set local-directoriy=f:\test
set ip=172.26.31.121
(echo open %ip%
echo sitv
echo sitv
echo prompt
echo cd %remote-directoriy%
echo mput %local-directoriy%\*
echo bye
)>ftp.txt
ftp -s:ftp.txt
del ftp.txt
pause
问题补充:我这。。是个初学的啦
,你这有的没的太多了啦,我看不懂啊,简单一点吧
高级java工程师 写道
因为工作需要,平生第一次用Windows的Dos命令写脚本。
需求:本地有个软件,每天生成相应的Log文件,并保存在以日期时间为目录的文件夹下。然后需要在后一天,将前一天生成的Log文件及文件夹上传到一个日志服务器进行保存。
实现工具:bat脚本,Ncftp工具,计划任务
其中,因为系统默认的ftp命令行,不支持passive模式,而Port模式下,需要修改或开启Log生成端服务器的防火墙,需要最终改用网络上免费的小工具Ncftp,这个小工具比系统自带的强大了N倍,支持命令行,支持PASV模式也可以切换PORT模式,还支持断点续传,上传成功后删除本地文件等。
实现步骤:
1)转到脚本所在目录;
2)上传之前未能成功上传的文件;
3)取到今天需要上传的文件夹名称;
4)上传今天需要上传的文件夹及文件;
5)如果成功,删除本地文件,如果不成功,将文件夹移到备份目录;
6)删除空目录;
以下是具体的脚本内容(英文版系统):
-----------------------------------------------------------
@echo off
set dt=%date:~10,4%%date:~4,2%%date:~7,2%
set batpath=%~dp0
set dname=
rem Turn to batfile's path
%~d0
cd %batpath%
mkdir bak >nul 2>nul
rem Re-upload bak log directory and file to NMS Server
type %batpath%Evtlog.txt | find "Ftpfailed" >nul 2>nul
if %errorlevel% EQU 0 goto reupload
if %errorlevel% NEQ 0 goto reupend
:reupload
echo ----------%dt% Re-upload bak Log------------ 2>>%batpath%Evtlog.txt 1>&2
%BatPath%ncftpput -u administrator -p password -r 5 -z -R -DD 192.168.1.80 /192.168.1.53 %batpath%bak\* 2>>%batpath%Evtlog.txt 1>&2
if %errorlevel% EQU 0 goto cleanrelog
if %errorlevel% NEQ 0 goto reupfailed
:cleanrelog
cd.>%batpath%Evtlog.txt
for /f "tokens=*" %%a in ('dir /b /ad /s %batpath%bak\^|sort /r') do rd "%%a" /q 2>nul
goto reupend
:reupfailed
echo %dt%:Ftpfailed Reupload files the day before yesterday failed! 2>>%batpath%Evtlog.txt 1>&2
goto reupend
:reupend
rem Get the yesterday date
for /d %%i in (20*) do if %%i LSS %dt% set dname=%%i
if exist %dname% goto ncftp
if not exist %dname% goto :eof
:ncftp
rem Transfer yesterday log file and folder to NMS Server
echo ----------%dt% Ftp Log------------ 2>>%batpath%Evtlog.txt 1>&2
%BatPath%ncftpput -u administrator -p password -r 5 -z -R -DD 192.168.1.80 /192.168.1.53 %batpath%%dname% 2>>%batpath%Evtlog.txt 1>&2
if %errorlevel% EQU 11 goto session
if %errorlevel% EQU 10 goto library
if %errorlevel% EQU 9 goto error
if %errorlevel% EQU 8 goto usage
if %errorlevel% EQU 7 goto url
if %errorlevel% EQU 6 goto directorytimeout
if %errorlevel% EQU 5 goto directory
if %errorlevel% EQU 4 goto transfertimeout
if %errorlevel% EQU 3 goto transfer
if %errorlevel% EQU 2 goto connecttimeout
if %errorlevel% EQU 1 goto connect
if %errorlevel% EQU 0 goto success
:success
echo ncFtp:0Success. 2>>%batpath%Evtlog.txt 1>&2
goto exit
:connect
echo Ftpfailed:1Could not connect to remote host. 2>>%batpath%Evtlog.txt 1>&2
goto movefile
:connecttimeout
echo Ftpfailed:2Could not connect to remote host - timed out. 2>>%batpath%Evtlog.txt 1>&2
goto movefile
:transfer
echo Ftpfailed:3Transfer failed. 2>>%batpath%Evtlog.txt 1>&2
goto movefile
:transfertimeout
echo Ftpfailed:4Transfer failed - timed out. 2>>%batpath%Evtlog.txt 1>&2
goto movefile
:directory
echo Ftpfailed:5Directory change failed. 2>>%batpath%Evtlog.txt 1>&2
goto movefile
:directorytimeout
echo Ftpfailed:6Directory change failed - timed out. 2>>%batpath%Evtlog.txt 1>&2
goto movefile
:url
echo Ftpfailed:7Malformed URL. 2>>%batpath%Evtlog.txt 1>&2
goto movefile
:usage
echo Ftpfailed:8Usage error. 2>>%batpath%Evtlog.txt 1>&2
goto movefile
:error
echo Ftpfailed:9Error in login configuration file. 2>>%batpath%Evtlog.txt 1>&2
goto movefile
:library
echo Ftpfailed:10Library initialization failed. 2>>%batpath%Evtlog.txt 1>&2
goto movefile
:session
echo Ftpfailed:11Session initialization failed. 2>>%batpath%Evtlog.txt 1>&2
goto movefile
:movefile
rem Move yesterday log directory trees and files to the destination directory bak
move /y %batpath%%dname% %batpath%bak\%dname% 2>>%batpath%Evtlog.txt 1>&2
if %errorlevel% NEQ 0 echo Moveerror:A duplicate file name exists, or the file cannot be found. 2>>%batpath%Evtlog.txt 1>&2
if %errorlevel% EQU 0 echo Move finish! 2>>%batpath%Evtlog.txt 1>&2
goto exit
:exit
rd %batpath%%dname% /q >nul 2>nul
echo ----------%dt% Ftp Log------------ 2>>%batpath%Evtlog.txt 1>&2
-----------------------------------------------------------
[url]http://www.linuxso.com/linuxrumen/6368.html
[/url]
问题补充:服务器的解压缩命令?是什么啊?没找到
suziwen 写道
直接调用zip命令在本地压缩下上传,然后调用服务器 的命令解压缩下不是更好吗
问题补充:我可以把它打包传上去,可是上传完之后我也要解压好,只是不知道用命令要怎么解压
suziwen 写道
直接调用zip命令在本地压缩下上传,然后调用服务器 的命令解压缩下不是更好吗
相关推荐
window下bat操作ftp、sftp,脚本已完善,只需要修改配置即可。本脚本是参照https://download.csdn.net/download/housonglin1213/10127890进行修的,分值是系统设置的,没分的话可以从前面的链接中下载
rem ***********备份数据************** echo 开始数据库备份 时间 :
BAT脚本实现文件批量上传示例
Kettle 数据抽取工具FTP 上传操作手册 一、Kettle 背景介绍 Kettle 是一款国外开源的 ETL 工具,纯 Java 编写,可以在 Window、Linux、Unix 上运行,数据抽取高效稳定。Kettle 这个 ETL 工具集,它允许你管理来自...
在这个场景中,我们需要创建一个BAT脚本来实现从Oracle数据库定时导出数据,并通过FTP将这些数据上传到远程服务器。 首先,我们需要了解Oracle数据库的基本操作。Oracle提供了多种数据导出工具,如SQL*Plus的`spool...
批处理脚本可以调用这些工具,如`ftp.exe`或`WinSCP`等,实现文件或文件夹的自动上传。 4. **自动上传**:为了实现自动化,可以将批处理脚本设置为Windows的计划任务。在“任务计划程序”中,可以定义一个触发器,...
一个简单的命令行实现ftp上传文件或者文件夹 到ftp多个目录下的工具 平时经常会要上传一个文件或者将一个文件夹下面的文件到ftp上面多个目录下,每次都要花费很多时间切换目录,很是麻烦,而且容易出错或者遗漏上传...
总的来说,这款“FTP连续上传下载工具”是一个实用的解决方案,通过JAVA和BAT脚本的结合,提供了高效且用户友好的文件传输体验。正确配置和使用这个工具,可以帮助用户轻松应对各种复杂的FTP文件传输需求。
FileWrite(li_bat, 'cd c:\\temp\\') // 更改目录到本地文件夹 FileWrite(li_bat, 'ftp 202.114.67.2') // 连接到FTP服务器 FileWrite(li_bat, 'user') // 输入用户名 FileWrite(li_bat, '12345') // 输入密码 ...
根据压缩包子文件的文件名称列表 "下载包含子文件夹、下载单文件夹",我们可以推断压缩包内至少有两个文件,分别用于实现不同的FTP下载功能:一个是下载整个包含子文件夹的目录,另一个可能是下载单一的文件夹。...
- 屏蔽特定文件类型上传(如.exe, .bat)。 2. **用户隔离**: - 不启用用户隔离,允许用户访问指定的FTP根目录。 #### 六、FTP权限设置 1. **部门员工权限**: - 在FTP授权规则中,删除默认的所有权限。 - ...
对这个进行扩展一下,可以更节省用户的时间,还是得靠 Windows 另外一个有用的命令 fc,编写如下批处理文件 FTP 更新.bat:tree /f /a d: >d:FTPnew.txt,fc /L d:FTP.txt d:FTPnew.txt >d:FTP 更新列表.txt,然后...
而“FTP服务器”则表明了该服务与FTP协议的交互,FTP是一种广泛用于互联网上的文件传输标准,允许用户上传、下载文件。 压缩包中的文件名称列表提供了关于软件组件的一些线索: 1. `uninstall.bat` 和 `install....
4. **网络操作**:下载、上传文件,执行FTP任务。 5. **故障修复**:通过运行特定的命令集合,解决某些系统问题。 6. **加密解密**:结合其他工具,BAT文件可以实现文件的加密和解密操作,虽然这可能不如专门的加密...
自己收集的FTP OCX控件合集,包含一个OCX函数查看器-可看OCX中的所有函数及所需参数,方便您使用: 6B605F6A CIFTP.OCX BE91B3F6 cscxftp.ocx ...E4F5B1A9 控件卸载-当前文件夹.bat 54553CF2 控件注册-当前文件夹.bat
FTP同步则是指通过FTP服务保持本地和远程服务器上的文件夹结构和文件内容的一致性。 在本教程中,我们将探讨如何实现FTP同步,以便于管理和更新网站内容或者确保多台设备之间的文件一致性。 1. **cwRsync工具**: ...
2. 上传文件:利用`ftp`命令,可以编写批处理脚本来上传文件到FTP服务器。 3. 网络监控:可以使用`ping`、`netstat`等命令来监控网络连接状态,检查IP是否可达,或者查看端口占用情况。 系统类批处理: 1. 系统维护...
本方案旨在通过编写Windows批处理脚本,实现对特定文件夹内的文件进行自动归档、压缩,并通过SFTP方式将压缩后的文件上传到远程的Linux备份服务器上。这种方式不仅能够提高数据传输的安全性,还能够减少人工干预,...
FTP工具(JAVA版)是一种基于Java编程语言实现的文件传输协议客户端应用,它允许用户方便地进行文件和文件夹的上传、下载以及管理操作。在Java中,FTP客户端通常通过利用java.net.Socket类和java.io流来实现与FTP...
2.解压文件夹到一个目录,比如d盘根目录中,双击D:\apache-ftpserver-1.0.6文件夹中的hide.bat 3.打开ftp客户端FlashFXP,建立站点,ip为ftp所在服务器ip,比如127.0,0.1,192,168.0,3,端口为21,分别使用5个账号/...