用批处理命令实现FTP文件的自动传输
FTP批处理命令和制作
FTP批处理命令和制作一、FTP批处理命令的使用方法语法:ftp -s:批处理脚本文件名 [参数]2.在批处理脚本文件中编写FTP命令。
示例内容:username //输入用户名password //输入密码cd /path/to/directory //切换目录put local_file.txt //上传文件bye //退出FTP服务器3.保存批处理脚本文件。
将脚本内容保存到一个文本文件中,后缀名为“.txt”或“.bat”。
4.运行批处理脚本文件。
打开CMD窗口,进入脚本文件所在目录,运行脚本文件。
二、制作FTP批处理文件2.编写FTP命令。
示例内容:usernamepasswordcd /path/to/directoryget file1.txtget file2.txtput local_file.txtbye3. 保存文件时,选择“所有文件”格式,并将文件后缀名设置为“.bat”。
4.运行FTP批处理文件。
双击运行保存的FTP批处理文件,或者在CMD窗口中运行该文件。
通过制作FTP批处理文件,可以方便地进行多个FTP操作的自动化,提高工作效率。
1. 创建一个文本文件,命名为“ftp_download.bat”。
2.在文件中编写FTP命令。
上述脚本会在FTP服务器上执行以下操作:-输入用户名和密码进行身份验证;-使用二进制传输模式;-切换到指定目录;-关闭提示模式;-关闭FTP连接后删除临时的命令文件。
3.保存文件。
将文件保存到合适的位置,并确保文件后缀名为“.bat”。
4.运行脚本。
双击运行保存的脚本文件,或者在CMD窗口中运行该文件。
以上是FTP批处理命令的使用方法以及制作FTP批处理文件的步骤。
通过批处理命令,可以轻松地自动化FTP操作,提高工作效率。
FTP批处理命令与制作
ftp命令及批处理的制作其他学习类 2008-03-21 15:57:46 阅读216 评论0 字号:大中小订阅1、 ftp命令ftp命令是Internet用户使用最频繁的命令之一,通过ftp命令可以与ftp服务器之间相互传送文件。
语法:ftp [-v][-d][-i][-n][-g][-s:FileName][-a][-w:WindowSize][-A][Host]参数-v 禁止显示 FTP 服务器响应。
-d 启用调试、显示在 FTP 客户端和 FTP 服务器之间传递的所有命令。
-i 传送多个文件时禁用交互提示。
-n 在建立初始连接后禁止自动登录功能。
-g 禁用文件名组合。
Glob 允许使用星号 (*) 和问号 (?) 作为本地文件和路径名的通配符字符。
-s:filename 指定包含 ftp 命令的文本文件。
这些命令在启动 ftp 后自动运行。
该参数不允许带有空格。
使用该参数而不是重定向 (<)。
-a 指定绑定 FTP 数据连接时可以使用任何本地接口。
-w:windowsize 指定传输缓冲的大小。
默认窗口大小为 4096 字节。
-A 匿名登录到 FTP 服务器。
Host 指定要连接的计算机名、IP 地址或 FTP 服务器的 IPv6 地址。
如果指定了主机名或地址,则其必须是命令行的最后一个参数。
/? 在命令提示符下显示帮助。
2 、ftp批处理文件的制作新建两个文件ftpget.bat和ftpget.txt,前者就是我们要制作的批处理文件,其内容为:ftppath\ftp.exe -i -s:ftpget.txt host其中ftppath为ftp所在目录,host为ftp服务器IP地址。
ftpget.txt文件内容为:username //FTP用户名password //FTP密码//以下是FTP命令cd filepathget filename1get filename2...get filenamenquit //退出FTP其中,filepath是要下载文件所在的目录,filename1-->filenamen 是要下载的文件名。
通过UNIX SHELL脚本实现FTP自动传输
通过UNIX SHELL脚本实现FTP自动传输问题提出:因工作需要,要业务系统要求作完日终后,把数据从主机通过FTP传送到备机。
需要分析:1.每天日终时间不同,所以最好是手工编制脚本,当业务人员日终完成后,手动调用,而不能通过任务调度来实现。
2.每天要传送的数据文件名不同(与日期相关),所以要在脚本中处理文件名。
3.需要业务人员提供的信息越少越好,每天操作,命令多了,出错的机会也多。
具体脚本如下:(在Sco Open Server 5.0.x 上测试通过)。
希望对大家有所帮助。
――――――――――――――――――#!/bin/sh#取得年月日YYYY=`date "+%Y"`MM=`date "+%m"`DD=`date "+%d"`filename="$YYYY$MM$DD"#显示年月日echo "Input Backup Date: ($filename) \c"#读取输入,如果是当天日期,可直接回车read filenameif test -n filenamethenecho "Backup Date: $filename"elsefilename="$YYYY$MM$DD"echo "Backup Date: $filename"fi#取得日期后,写一个FTP脚本#备机地址echo "open 1x.xx.xx.x0"> ftp.cmd#备机用户,密码echo "user loginname password">>ftp.cmdecho "bin">>ftp.cmdecho "hash">>ftp.cmd#备机目录echo "cd /usr/database">>ftp.cmd#文件名为data20070310echo "put data$filename">>ftp.cmdecho "close">>ftp.cmdecho "bye">>ftp.cmdcd /usr/database#自动执行ftpcat $HOME/ftp.cmd|ftp -necho "Auto Backup $filename Data Finished!"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~自动ftp脚本(全参数版)#!/bin/sh#==================================================================#*#* Copyright (c) 2005, dinner3000#* All rights reserved.#*#* 文件名称:auto_trans.sh#* 文件标识:#* 摘要:自动ftp脚本(全参数版)#* 作者:dinner3000#* 修改者:#* 修改内容:#* 修改时间:#* 版本:2005-5-12#* $Id$#*#==================================================================#local variablePS_FULLNAME=`basename ${0}` #脚本全名PS_EXT=`echo ${PS_FULLNAME} |awk -F"." '{if(index($0,".")==0){printf("");}else{printf("%s",$NF)}}'` #脚本扩展名PS_NAME=`echo ${PS_FULLNAME} |sed "s/.${PS_EXT}//g"` #脚本名称PS_DIR=`dirname ${0}`TMP_STR=`echo ${PS_DIR} |awk -F"/" '{printf("%s",$1);}'`if [ -z ${TMP_STR} ]; thenABS_PATH=${PS_DIR}elsecd ${PS_DIR}ABS_PATH=`pwd`fiWORK_DIR=${ABS_PATH} #脚本所在绝对路径LOCAL_DIR=`pwd` #初始化FTP本地目录#remote variableREMOTE_IP="127.0.0.1" #初始化FTP主机地址USER="Anomymous" #初始化FTP帐号PSWD="Anonymous@" #初始化FTP密码REMOTE_DIR="/" #初始化FTP远端目录BACKUP_DIR="undefined" #初始化文件备份目录FILE_TYPE="*.*" #初始化要传送的文件类型FILE_LIST="undefined" #初始化要传送的文件列表METHOD="undefined" #初始化FTP传送方向CONN_MODE="passive off" #初始化FTP连接模式TRAN_MODE="binary" #初始化FTP传送模式CLEAN="false" #是否清除传送成功的文件#log pathRUN_LOG="${WORK_DIR}/${PS_NAME}_run.log" #脚本运行记录TRANSFER_LOG="${WORK_DIR}/${PS_NAME}_transfer.log" #FTP传送临时记录#-----------------------------------------------------------loglite(){ #不换行记录echo -n "${1}" >> ${RUN_LOG} 2>&1}log(){ 换行记录echo "${1}" >> ${RUN_LOG} 2>&1}quit(){ #正常退出log "===E==N==D=====`date`=====E==N==D==="rm -f ${PS_LOCK}exit}error(){ #非法退出echo "${1}" 2>&1log "${1}"quit}#============================================================ while getopts :UCDPAh:u:p:r:l:b:t:f: OPTION #分析执行参数docase ${OPTION} inh) #FTP主机地址REMOTE_IP=${OPTARG};;u) #FTP帐号USER=${OPTARG};;p) #FTP密码PSWD=${OPTARG};;r) #FTP远端目录REMOTE_DIR=${OPTARG};;l) #FTP本地目录LOCAL_DIR=${OPTARG};;b) #文件备份目录BACKUP_DIR=${OPTARG};;t) #要传送的文件类型FILE_TYPE=${OPTARG};;f) #要传送的文件列表FILE_LIST=${OPTARG};;U) #FTP传送方向(上传)METHOD="upload";;D) #FTP传送方向(下载)METHOD="download";;P) #FTP连接模式CONN_MODE="passive on";;A) #FTP传送模式TRAN_MODE="ascii";;C) #清除传送成功的文件CLEAN="true";;?)#show usageerror "${PS_FULLNAME} -[U(pload) D(ownload)] -[C(lean)] -[P(assive)] -[A(scii)] -[h host] -[u user] -[p password] -[r remote path] -[l local path] -[b backup path] -[t filetype] -[f file list].";;esacdonePS_LOCK="${WORK_DIR}/${PS_NAME}_`echo "${USER}:${PSWD}@${REMOTE_IP}${REMOTE_DIR} => ${LOCAL_DIR}" |md5`.pid" #进程互斥锁, 只有参数完全相同才会互斥if [ ${METHOD} = "undefined" ]; then #FTP传送方向未定义错error "Tansfer mode(-[U(pload) D(ownload)]) must be set.(1)"fi#-------------------------------------------------------------#init run loglog ""log "###############`date`################"log "REMOTE: ${USER}:${PSWD}@${REMOTE_IP}${REMOTE_DIR}"log "LOCAL: ${LOCAL_DIR}"log "METHOD: ${METHOD}"log "FILE_TYPE: ${FILE_TYPE}"log "WORK_DIR: ${WORK_DIR}"log "PS_LOCK: ${PS_LOCK}"log "RUN_LOG: ${RUN_LOG}"log "TRANSFER_LOG: ${TRANSFER_LOG}"log "###########################################################"log ""if [ -f ${PS_LOCK} ]; then #进程互斥echo "`date`: ${PS_FULLNAME} already running. Exit." 2>&1log "`date`: ${PS_FULLNAME} already running. Exit." 2>&1exitelseps auxw |grep /bin/sh |grep ${PS_FULLNAME} |grep -v grep > ${PS_LOCK}fi#-----------------------------------------------------------#create file listif [ ${METHOD} = "upload" ]; thenif [ ${FILE_LIST} = "undefined" ]; thenBATCH_OPT="mput ${FILE_TYPE}"elseBATCH_OPT=`sed 's/^/put /g' ${FILE_LIST}`rm -f ${FILE_LIST}fielif [ ${METHOD} = "download" ]; thenif [ ${FILE_LIST} = "undefined" ]; thenBATCH_OPT="mget ${FILE_TYPE}"elseBATCH_OPT=`sed 's/^/get /g' ${FILE_LIST}`rm -f ${FILE_LIST}fielseerror "Tansfer mode(-[U(pload) D(ownload)]) must be set.(2)"fi#transfer filescd ${WORK_DIR}#excute ftp batchecho "open ${REMOTE_IP}prompt offuser ${USER} ${PSWD}lcd ${LOCAL_DIR}cd ${REMOTE_DIR}${CONN_MODE}${TRAN_MODE}${BATCH_OPT}closebye" |ftp -v -n |tee ${TRANSFER_LOG} |sed 's/^/>/g' >> ${RUN_LOG} #执行批量传送, 并记录日志TOTAL_TRANSFERED=`grep "226 Transfer complete" ${TRANSFER_LOG} |wc -l` #统计传送数量log "TOTAL TRANSFERED: ${TOTAL_TRANSFERED}"log ""#clear or backup filesif [ ${METHOD} = "upload" ]; thenif [ ${BACKUP_DIR} != "undefined" ]; then #备份已上传的文件log "Backup up files ... "COUNT=0BATCH_BKUP=`grep -B 3 "226 Transfer complete." ${TRANSFER_LOG} |grep "local:" |awk -F" " '{printf("%sn",$2);}'`cd ${LOCAL_DIR}for I in ${BATCH_BKUP}domv -v ${I} ${BACKUP_DIR}/ |sed 's/^/>/g' >> ${RUN_LOG} 2>&1COUNT=`expr ${COUNT} + 1`donelog "TOTAL BACKUPED: ${COUNT}"log ""elseif [ ${CLEAN} = "true" ]; then #清除已上传的文件log "Remove transfered files ... "COUNT=0BATCH_CLEAN=`grep -B 3 "226 Transfer complete." ${TRANSFER_LOG} |grep "local:" |awk -F" " '{printf("%sn",$2);}'`log "Execute local clear(${LOCAL_DIR}) ... "cd ${LOCAL_DIR}for I in ${BATCH_CLEAN}dorm -fv ${I} |sed 's/$/ deleted./g' >> ${RUN_LOG} 2>&1COUNT=`expr ${COUNT} + 1`donelog "TOTAL DELETED: ${COUNT}"log ""fifielif [ ${METHOD} = "download" ]; thenif [ ${CLEAN} = "true" ]; then #清除已下载的文件log "Execute remote clear ... "BATCH_CLEAN=`grep -B 3 "226 Transfer complete." ${TRANSFER_LOG} |grep "local:" |awk -F" " '{printf("delete %sn",$2);}'`echo "open ${REMOTE_IP}prompt offuser ${USER} ${PSWD}lcd ${LOCAL_DIR}cd ${REMOTE_DIR}${BATCH_CLEAN}closebye" |ftp -v -n |tee ${TRANSFER_LOG} |sed 's/^/>/g' >> ${RUN_LOG} 2>&1COUNT=`grep "250 DELE command successful." ${TRANSFER_LOG} |wc -l`log "TOTAL DELETED: ${COUNT}"log ""fierror "Tansfer mode(-[U(pload) D(ownload)]) must be set.(3)"fiquit #正常退出#========================================================调用方法:auto_trans.sh-[U(pload) D(ownload)]传送方向, 上传或下载, 必须指定, 且只能指定其一-[C(lean)]清除已传送的文件(默认不清除)-[P(assive)]被动模式(默认主动)-[A(scii)]文本模式(默认二进制)-[h host]主机地址(默认127.0.0.1)-[u user]帐号(默认匿名)-[p password]密码(默认匿名)-[r remote path]远端路径(默认根目录)-[l local path]本地路径(默认当前目录)-[b backup path]文件备份目录(默认不备份)-[t filetype]要传送的文件类型(默认*.*)-[f file list]要传送的文件列表(默认无)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~在UNIX环境中,如果需要经常性的大批量FTP,则可以考虑脚本实现。
使用cmd命令行方式登录ftp上传下载数据
使⽤cmd命令⾏⽅式登录ftp上传下载数据部分⽤户在使⽤ftp⼯具登录空间上传下载过程中经常会遇到各种问题,如主动模式,被动模式,以及其他导致⽆法登陆ftp 、上传数据、下载数据的问题,这时候不妨使⽤⼀下命令⾏⽅式。
命令⾏下可以避免很多由于ftp⼯具配置导致的问题,⽽且这种⽅式下下载数据的速率明显⽐使⽤ftp⼯具更快。
下⾯就来看⼀下如何使⽤ftp 命令进⾏简单的上传下载数据。
1.登录ftp在“开始”->”运⾏”中输⼊“cmd”,进⼊cmd命令⾏模式,接下来输⼊:ftp 118.193.22.151输⼊⾃⼰的⽹站ip地址,接下来会提⽰输⼊ftp⽤户名:webmaster@域名,再输⼊密码,登录成功后会提⽰user logged in2.查看当前ftp空间下所有⽂件的列表输⼊命令:dir 可以列出当前空间下的⽂件和⽂件夹列表和磁盘配额限制为200MB3.上传⽂件将D:test ⽂件夹下的⽂件1.txt 、2.txt、3.txt上传到空间下的htdocs⽬录下。
由于当前所在⽬录不⼀定在D:test,所以先切换到D:test 下,使⽤命令:lcd D:test,即可将当前⼯作⽬录切换到D:test,使⽤命令!dir 查看⼀下当前D:test 下有哪些⽂件,可以看到有1.txt 、2.txt、3.txt;输⼊命令pwd,查看当前所在的ftp⽬录,如果不在htdocs下,需要使⽤命令cd htdocs 切换进⼊该⽬录,然后使⽤put命令分别上传这3个⽂件:若要将d:test 下的所有以.txt结尾的⽂件都上传到htdocs下,可以使⽤mput命令:ftp> prompt 将交互模式关闭ftp> mput *.txt4.下载⽂件,将空间下的⽂件或⽂件夹下载到本地ftp> get 1.txt下载多个⽂件或⽂件夹到本地计算机ftp> mget * 下载所有⽂件和⽂件夹到本地ftp> mget *.txt 下载以.txt 结尾的⽂件到本地5.删除ftp空间⽂件或⽬录ftp> delete 1.txt :删除⽂件1.txtftp> mdelete *.txt 删除空间下所有以.txt 结尾的⽂件ftp> mdelete * 删除所有⽂件若要删除⽬录,可以使⽤“rmdir ⽬录名”来删除⽬录,前提是该⽬录必须为空,也就是⽬录中没有⽂件或⼦⽬录。
dos下ftp用法
dos下ftp用法一、概述FTP(File Transfer Protocol)是一种文件传输协议,用于在计算机之间传输文件。
在DOS环境下,可以使用FTP命令来传输文件。
本文档将介绍在DOS环境下使用FTP的基本用法。
二、FTP命令详解1. FTP命令格式:ftp [服务器地址]* 服务器地址:要连接的FTP服务器的IP地址或域名。
2. 登录FTP服务器:在DOS环境下,输入ftp命令后,系统会提示输入用户名和密码,输入正确的用户名和密码即可登录FTP服务器。
3. 文件操作a. 列出目录内容:在FTP服务器上,可以使用dir命令来列出目录内容。
例如,输入dir *.* 将列出当前目录下的所有文件和文件夹。
b. 下载文件:使用get命令下载文件。
例如,get [文件名]将从FTP服务器下载指定文件到本地计算机。
c. 上传文件:使用put命令上传文件到FTP服务器。
例如,put [本地文件名]将把本地计算机上的文件上传到FTP服务器上。
d. 删除文件:使用delete命令删除文件。
例如,delete [文件名]将从FTP服务器上删除指定文件。
4. 其他命令a. 退出FTP:使用quit命令退出FTP服务器。
b. 状态查询:使用stat命令查询FTP服务器的状态信息。
c. 设置选项:使用set命令设置FTP服务器的选项。
三、常见问题及解决方法1. 无法登录FTP服务器:检查用户名和密码是否正确,确保网络连接正常。
2. 下载文件失败:检查文件是否存在,确保本地计算机上的存储空间足够。
3. 上传文件失败:检查本地计算机上的文件是否正确,确保FTP 服务器的存储空间足够。
4. 无法删除文件:检查文件是否存在,确保有足够的权限删除文件。
四、注意事项1. 在使用FTP传输文件时,请确保遵守法律法规,不得传输禁止或非法内容。
2. 在登录FTP服务器时,请勿泄露敏感信息,如用户名和密码。
3. 在上传和下载文件时,请务必备份好本地和服务器上的文件,以防数据丢失。
在PB中实现ftp传输
在PB中实现ftp传输(深圳:独孤求败 2003-05-20)在用PB进行开发时常常需要用到ftp功能,最典型的应用就是将数据窗口中的数据生成txt文件,然后将此数据文件用ftp发送到远程服务器上去。
由于pb本身并未提供任何ftp的功能,因此想在pb中进行ftp传输,只能应用pb以外的资源。
以下是笔者在pb开发中总结出来的几种方法。
一、使用外部命令--- 这种方法就是在pb程序中运行Windows中自带的ftp命令。
具体做法是在程序中生成一个.bat文件,将要运行的ftp命令写到此文件中,再运行这个批处理文件。
假设ftp服务器ip为 202.114.67.2,用户名为user,口令12345,现在要将本地c:\temp\下的t00001.txt文件上传到服务器的\txtdata\目录下去。
则pb代码如下:integer li_bat //文件名指针li_bat = FileOpen(path_ftp+'get_file.bat',lineMode!, Write!, LockWrite!, Replace!)FileWrite(li_bat, 'cd c:\temp\')FileWrite(li_bat, 'ftp 202.114.67.2')FileWrite(li_bat, 'user)FileWrite(li_bat, '12345')FileWrite(li_bat, 'put t00001.txt \txtdata\t00001.txt')FileWrite(li_bat, 'bye')FileWrite(li_bat, 'exit')FileClose(li_bat)Run(path_ftp+'get_file.BAT',Minimized!)messagebox("提示信息","数据上报完毕")--- 此方法的优点是简单易行,既不要调用API函数,也不需加入OLE。
ftp工具wput、wget使用说明
ftp工具wput、wget使用说明FTP工具wput、wget 以及ftp.exe使用说明一、wput命令 (3)用法: wput [options] [file]... [url]. (3)启动: (3)日志记录及输入文件: (3)上传: (3)FTP选项 (4)二、wget命令 (4)启动: (4)递归下载: (6)递归下载时有关接受/拒绝的选项: (6)三、ftp.exe命令 (6)概述: wput功能是ftp方式上传的,相对应的下载叫wget,这两个程序都相当强大,都有许多的命令与参数,命令的帮助文档如下:一、wput命令优点:断点续传、对比已存在文件大小等缺点:上传速度较慢,只有300kb/s用法: wput [options] [file]... [url]...urlftp://[username[:password]@]hostname[:port][/[path/][file]] 启动:-V, --version 显示wput的版本并退出.-h, --help 显示帮助日志记录及输入文件:-o, --output-file=FILE 记录日志到文件-a, --append-output=FILE 添加日志到文件-q, --quiet 安静模式-v, --verbose 详细模式-d, --debug 编译输出-nv, --less-verbose 简短模式-i, --input-file=FILE 从文件读取文件地址-s, --sort 以服务器的IP地址与路径排序文件地址--basename=PATH 添加到网络地址时将本地路径去除-I, --input-pipe=COMMAND 将输出信息作为数据源(比如输出有错误,则可以记录日志或发送报告邮件)-R, --remove-source-files 成功上传的文件移除源文件上传:--bind-address=ADDR 在本地主机绑定地址(主机名或IP地址)-t, --tries=NUMBER 设置重试次数(-1表示无穷次)-nc, --dont-continue 不恢复部分上传文件-u, --reupload 不跳过已经完成的文件--skip-larger 如果服务器端文件比本地的大,则不上传文件--skip-existing 如果服务器端存在该文件,则不上传-N, --timestamping 只上传比服务器端新的文件-T, --timeout=10th-SECONDS 设置多种超时为10秒set various timeouts to 10th-SECONDS-w, --wait=10th-SECONDS 每两个文件上传中间等待10秒(默认0秒)--random-wait 在0到2秒间随机设定等待时间--waitretry=SECONDS 设置上传重试的时间-l, --limit-rate=RATE 限制上传速度-nd, --no-directories 不创建目录-Y, --proxy=http/socks/off 设置代理类型/关闭--proxy-user=NAME 设置代理用户名--proxy-pass=PASS 设置代理密码FTP选项-p, --port-mode 不被动,开启端口模式ftp(def. pasv)no-passive, turn on port mode ftp (def. pasv) -A, --ascii 强制ASCII码转换-B, --binary 强制二进制码转换--force-tls 强制TLS加密二、wget命令启动:-V, --version 显示Wget 的版本并且退出。
用批处理命令实现FTP文件的自动传输
另外,如果是Windows操作系统之间进行FTP进行文件传输,只要去掉1.ftp中“Bin”一行就可以了。
由于工作的原因,每天需要在Windows操作系统之间或与其它操作系统如UNIX等利用FTP进行文件传输。经常重复这样的工作程序,即繁琐又容易出错。本人经过思考摸索,在Windows操作系统的“任务计划”帮助下,成功地用批处理命令实现FTP文件的自动传输。现将此操作过程详解,希望对同好有所帮助,更望能抛砖引玉,提出更好的方法。
C:
Cd datatran
ftp–n–s:”c:\1.ftp”
新建完毕后将该文本保存为1.bat后存放在硬盘任何分区或软盘中均可。这样,第一步工作已经完成,您随时可以执行该批处理文件进行FTP文件的传输。
第二步,将该该批处理文件放在“任务计划”中设定自动运行。方法是:打开“开始”菜单“程序”下“附件”中的“系统工具”,点击“任务计划”,执行“添加任务计划”,按“任务计划向导”提示计算机会根据您的设定,自动周期性地进行文件接收或发送,不再需要您动一下手指,真正做到它工作,您休息。
假设本机操作系统为Windows操作系统,需进行文件传输的目录为C:\datatran;对方计算机操作系统为UNIX操作系统,IP地址为10.30.15.3,端号为2802,需进行文件传输的目录为C:\data,登录用户名为Anonymous,口令为123456。从本机到对方机接收文件操作方法如下。
第一步,先新建一个文本:
Open 10.31.15.3 2802
User anonymous
123456
Cd data
Bin
Prompt
Mget *.*
Bye
Quit
windowsbat脚本编写(运行命令,ftp上传和Telnet)
windowsbat脚本编写(运⾏命令,ftp上传和Telnet)背景部署Jenkins持续集成,需要⽤命令把操作串起来,做到⾃动化部署。
我们的服务器是windows2008,所以就想到了写个bat脚本,到时候直接运⾏就好了。
第⼀次写,啥都不知道,还是上⽹搜寻资料吧。
这⾥做个记录~~~~~批处理bat⽂件最常⽤的⼏个命令:echo表⽰显⽰此命令后的字符echo on 表⽰在此语句后所有运⾏的命令都显⽰命令⾏本⾝echo off 表⽰在此语句后所有运⾏的命令都不显⽰命令⾏本⾝@与echo off相像,但它是加在每个命令⾏的最前⾯,表⽰运⾏时不显⽰这⼀⾏的命令⾏(只能影响当前⾏)。
call 调⽤另⼀个批处理⽂件(如果不⽤call⽽直接调⽤别的批处理⽂件,那么执⾏完那个批处理⽂件后将⽆法返回当前⽂件并执⾏当前⽂件的后续命令)。
pause 运⾏此句会暂停批处理的执⾏并在屏幕上显⽰Press any key to continue...的提⽰,等待⽤户按任意键后继续rem 表⽰此命令后的字符为注释,不执⾏。
copy a:*.* d:\back 复制命令>、>>输出重定向命令:将⼀条命令或某个程序输出结果的重定向到特定⽂件中, > 与 >>的区别在于,>会清除调原有⽂件中的内容后写⼊指定⽂件,⽽>>只会追加内容到指定⽂件中,⽽不会改动其中的内容例⼦⾸先我们看⼀个例⼦,进⼊springboot项⽬⽬录,运⾏maven命令打包:@echo offD:cd D:\Toona\Toona-springboot\toona-demorem ⽣成后端jar包,移动到统⼀⽬录set JAVA_HOME=D:\java\ibm_jdk1.8.0call mvn clean package spring-boot:repackage -Dmaven.test.skip=truecopy D:\Toona\Toona-springboot\toona-demo\target\toona-demo.jar D:\Toona-file\Toona-packagerem ⽣成后端war包,移动到统⼀⽬录set JAVA_HOME=D:\java\ibm_jdk1.8.0call mvn clean package spring-boot:repackage -Dmaven.test.skip=true -f pom-war.xmlcopy D:\Toona\Toona-springboot\toona-demo\target\toona-demo.war D:\Toona-file\Toona-packagerem ⽣成zip包,移动到统⼀⽬录call npm installcall npm run distcd distjar cvfM toona-demo-web.zip ./copy ...... 1.对于@echo off 如果不加上的话,在运⾏bat的时候就会把运⾏的命令打印出来,效果就和⾃⼰在cmd中敲命令⼀样2.设置环境变量JAVA_HOME可以⽤set 变量名=value3.rem是注释,不会运⾏4.在BAT⽂件⾥⾯执⾏Maven的mvn命令后,mvn之后的命令不会被执⾏,这是由于mvn本⾝也是BAT⽂件,并且其结束时执⾏了exit命令。
FTP批处理命令和制作
FTP批处理命令和制作FTP(File Transfer Protocol)是一种用于在计算机之间传输文件的协议。
FTP批处理命令可以用于自动化执行一系列的FTP操作,大大提高了文件传输的效率。
本文将介绍FTP批处理命令的基本使用方法并制作一个实例。
```open hostname [port] // 连接FTP服务器user username [password] // 登录FTP服务器binary // 设置传输模式为二进制ascii // 设置传输模式为ASCII文本prompt [on,off] // 是否提示mput local-files // 批量上传多个文件cd remote-directory // 切换远程目录lcd local-directory // 切换本地目录bye // 断开FTP连接```制作一个FTP批处理脚本如下:```user username password // 使用用户名和密码登录binary // 设置传输模式为二进制cd /remote/directory // 切换到远程目录lcd C:\local\directory // 切换到本地目录mput *.txt // 上传所有的txt文件bye // 断开FTP连接```这个脚本可以通过将上述脚本保存到一个文本文件(例如script.txt),然后执行以下命令来运行:```ftp -s:script.txt```以上命令将执行script.txt文件中的FTP批处理命令。
通过使用FTP批处理命令,您可以轻松地实现自动化文件传输操作。
您可以根据需要修改上述脚本以适应不同的场景。
总结起来,FTP批处理命令是一种非常强大的工具,可用于自动化执行FTP操作,提高文件传输的效率。
制作FTP批处理脚本的方法非常简单,只需按照上面提供的语法规则编写脚本即可。
希望本文可以帮助您更好地了解和使用FTP批处理命令。
FTP实现文件传输
Java语言实验报告计科1003 姓名:李超学号:2010310200710实验环境:普通PC机,Win7 系统,eclipse集成开发环境实验目的:了解ftp协议,掌握网络编程的基本方法,掌握如何通过套接字实现服务器与客户端的信息交流,同时掌握网络上如何利用输入输出流进行文件的传输。
实验内容:在客户端通过输入ls可以看到服务器工作目录下的文件目录,cd命令改变工作目录,get命令下载服务器端的文件,put向服务器上次文件实验步骤:1)打开eclipse集成开发环境,先创建一个FtpServer项目,再添加一个FtpServer类,然后对客户端请求实现功能函数。
2)创建FtpClient项目,再添加一个FtpClient类,然后编写功能函数,对服务器发出请求,并对服务器的消息作出反应。
3)调试,编译,运行实验总结:本次实验掌握输入与输出流的使用,并且掌握了网络上ftp文件传输协议的具体类容,对服务器/客户端架构有了一定的了解,对java语言的了解更进一层。
实验感悟:编程语言的学习重在运用,通过此次实现,对java语言的基本格式,基本语法有了一定的了解,并且网络资源与图书馆资源十分丰富,我们要善于自主学习,发现问题要学会自己解决,同时要养成阅读代码的好习惯,当将一段代码真正读懂时,自己也在进步。
本次实验,我从根本不知道如何动手,到最后将此次实验做完,自己能力得到了很大提升,感悟最深的还是实践才是真理。
附:代码/*使用说明:1.在客户端输入help获取帮助信息2.在客户端输入get 文件名.文件格式文件名.文件格式,将服务器端工作目录下得文件下载到客户端工作目录下3.在客户端输入put 文件名.文件格式文件名.文件格式,将客户端的工作目录下的文件上传到服务器的工作目录4.在客户端输入ls可以得到服务器工作目录下得所有文件5.在客户端输入cd 路径名,可以改变服务器端的工作目录6.在客户端输入quit,断开与服务器的连接并退出*//*---------------------------服务器端程序-------------------------*/ import .*;import java.io.*;public class FtpServer{public static void main(String[] args) throws IOException{ServerSocket ss = new ServerSocket(7777);DataInputStream dis;Socket socket;while(true){socket = ss.accept();dis = new DataInputStream(socket.getInputStream());System.out.println(dis.readUTF() + " has connected.");Thread thread = new Thread(new HandleClient(socket)); // create a new thread to handle the request from the clientthread.start();}}}class HandleClient implements Runnable{Socket socket = null;String WD = "."; // set the initial working directoryHandleClient(Socket socket){this.socket = socket;}public void run(){this.WD = new File("").getAbsolutePath(); // convert "." to absolute pathint cmdNum = -1; // command number is the index of <String[] cmdList> in <class FTPClient>DataInputStream dis;try{dis = new DataInputStream(this.socket.getInputStream());mark:while(cmdNum!=5){try{cmdNum = dis.readInt();}catch(IOException e){System.out.println("A client connection has been closed, socket on server will be closed.");}switch(cmdNum){case 1:cdOnServer();break;case 2:lsOnServer();break;case 3:getOnServer();break;case 4:putOnServer();break;case 5: // quitthis.socket.close();System.out.println("A client has left.");break ; // [note]// Don't use System.exit(0), which is used to terminate a process, rather than a thread.default:continue mark;}}}catch(IOException e){e.printStackTrace();}}void cdOnServer() throws IOException{DataInputStream dis = new DataInputStream(this.socket.getInputStream());DataOutputStream dos = new DataOutputStream(this.socket.getOutputStream());String dir = dis.readUTF();File file = new File(dir);if(!file.exists()){dos.writeUTF("directoy not found.");}else{this.WD += "\\" + dir;System.out.println("[client]cd: the current working directory is " + this.WD);dos.writeUTF("the current working directory is " + this.WD);}}void lsOnServer() throws IOException{File file = new File(this.WD);File[] files = file.listFiles();ObjectOutputStream oos = new ObjectOutputStream(this.socket.getOutputStream()); // output stream to the clientoos.writeObject(files); // write file list in the working directory to the clientoos.flush();/* [note]* this.socket.shutdownOutput();* oos.close();* 此处最好不要关闭任何流*/}void getOnServer() throws IOException{DataInputStream dis = new DataInputStream(this.socket.getInputStream());OutputStream os = this.socket.getOutputStream();DataOutputStream dos = new DataOutputStream(os);String filename = dis.readUTF();filename = this.WD + "\\" + filename;// System.out.println(filename);if(new File(filename).exists()){dos.writeInt(1); // "1" presents that the file "filename" is exists.BufferedInputStream bis = new BufferedInputStream(new FileInputStream(filename));BufferedOutputStream bos = new BufferedOutputStream(os);dos.writeLong(new File(filename).length()); // send the length of the file to client// 用文件长度来控制另一端接收何时结束byte[] b = new byte[128];int len;while( (len = bis.read(b, 0, b.length)) != -1 ){bos.write(b, 0, len);}bos.flush();}else{dos.writeInt(0); // "0" presents that the file "filename" is not exists.}}void putOnServer() throws IOException{InputStream is = this.socket.getInputStream();DataInputStream dis = new DataInputStream(is);String filename = dis.readUTF();BufferedInputStream bis = new BufferedInputStream(is);BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(filename));long fileLength = dis.readLong();byte[] b = new byte[128];long length = 0L;int len;while(true){len = bis.read(b, 0, b.length);bos.write(b, 0, len);length += (long)len;if(length == fileLength){break;}}bos.flush();newDataOutputStream(this.socket.getOutputStream()).writeInt(1); // send the signal of finishing putting file}}/*----------------------------客户端程序------------------------*/ mport .*;import java.io.*;public class FtpClient{static final String[] cmdList = {"help","cd","ls","get","put","quit"};static final String[] cmdFunction ={"function:get help information","function:change directory","function:list the content of the current directory","function:download a file from the server","function:upload a file to the server","function:exit"};static final String[] cmdUsage ={"usage:help","usage:cd dir","usage:ls","usage:get src(server) dest(client)","usage:put src(client) dest(server)","usage:quit"};static final int CMDNUM = 6;static Socket socket = null; //[note]public static void main(String[] args) throws IOException, ClassNotFoundException{String username;System.out.print("Input your username: ");username = new BufferedReader(new InputStreamReader(System.in)).readLine();FtpClient.socket = new Socket("127.0.0.1", 7777); // [note]// Cannot use "this" in a static contextDataOutputStream dos;dos = new DataOutputStream(FtpClient.socket.getOutputStream());dos.writeUTF(username);String cmd = null;BufferedReader br = new BufferedReader(new InputStreamReader(System.in));int count = 0;while(true){if(count == 0){System.out.println("input 'help' for the information of the commands"); // print help information the first time log incount++;}System.out.print(username + "@FTPClient> ");cmd = br.readLine(); // Ctrl+C or Ctrl+Z, cmd = nullif(cmd == null){System.exit(0); // Ctrl+C or Ctrl+Z}cmd = cmd.trim(); // [note]// omit leading and trailing whitespace String[] strs = cmd.split("\\s+"); // [note]int cmdIndex;for(cmdIndex = 0; cmdIndex < CMDNUM; cmdIndex++){if(strs[0].equals(cmdList[cmdIndex])){break;}}switch(cmdIndex){case 0: // helpif(!cmd.equals(cmdList[0])){System.out.println(cmdUsage[0]);break;}help();break;case 1: // cdif(strs.length != 2){System.out.println(cmdUsage[1]);break;}cdOnClient(strs[1]);break;case 2: // lsif(!cmd.equals(cmdList[2])){System.out.println(cmdUsage[2]);break;}lsOnClient();break;case 3: // getif(strs.length != 3){System.out.println(cmdUsage[3]);break;}if(strs[1].equals(strs[2])){System.out.println("the dest name can't be the same as the src.");break;}getOnClient(strs[1], strs[2]);break;case 4: // putif(strs.length != 3){System.out.println(cmdUsage[4]);break;}if(strs[1].equals(strs[2])){System.out.println("the dest name can't be the same as the src.");break;}putOnClient(strs[1], strs[2]);break;case 5:if(!cmd.equals(cmdList[5])){System.out.println(cmdUsage[5]);break;}quit();break;default:System.out.println("Command not found.");break;}}}static void help(){System.out.println("-----------------------" +"Menue"+"-----------------------");for(int i = 0; i < CMDNUM; i++){System.out.println(" 1.Input:" + cmdList[i]);System.out.println(cmdFunction[i] + "\n" +cmdUsage[i]);}System.out.println("-----------------------------------------------------------");}static void cdOnClient(String dir) throws IOException{DataOutputStream dos = new DataOutputStream(FtpClient.socket.getOutputStream());dos.writeInt(1); // "1" means "cd"dos.writeUTF(dir); // pass the name of the directory to the serverString str = new DataInputStream(FtpClient.socket.getInputStream()).readUTF();System.out.println(str);}static void lsOnClient() throws IOException, ClassNotFoundException {newDataOutputStream(FtpClient.socket.getOutputStream()).writeInt(2); // send command number to server, "2" stand for "ls"ObjectInputStream ois = new ObjectInputStream(FtpClient.socket.getInputStream()); // get input stream from the serverFile[] files = (File[])ois.readObject(); // read file list from the serverfor(File f : files){if(f.isFile()){System.out.print("[file]: ");}else if(f.isDirectory()){System.out.print("[dir]: ");}System.out.println(f.getName());}/* [note]* FTPClient.socket.shutdownInput();* FTPClient.socket.shutdownOutput();* ois.close(); // Closing the stream of a socket also close the socket connection.*//* 此处小结:* 1. 不要用ois.close()去关闭一个socket上的流,这样也会close the socket connection.* 2. If you want close just the stream, use socket.shutdownInput(or output).* 但是这里最好不要关闭流,因为还有后续的读写操作* articles:*/questions/3956163/does-closing-the-inputstre am-of-a-socket-also-close-the-socket-connection*/}static void getOnClient(String src, String dest) throws IOException {DataOutputStream dos = new DataOutputStream(FtpClient.socket.getOutputStream());InputStream is = FtpClient.socket.getInputStream();DataInputStream dis = new DataInputStream(is);dos.writeInt(3); // send command number to serverdos.writeUTF(src); // send the target filename to serverint isExists = -1;isExists = dis.readInt();if(isExists == 0){System.out.println(src + ": file not found.");}else if(isExists == 1){BufferedInputStream bis = new BufferedInputStream(is);BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(dest));long fileLength = dis.readLong(); // get the length of the file from the serverSystem.out.println("downloading ......");byte[] b = new byte[128];long length = 0L;int len;while(true){len = bis.read(b, 0, b.length);bos.write(b, 0, len);length += (long)len;if(length == fileLength){break;}}bos.flush();System.out.println("download successfully.");}}static void putOnClient(String src, String dest) throws IOException {File file = new File(src);if(!file.exists()){System.out.println(src + ": file not found.");return;}OutputStream os = FtpClient.socket.getOutputStream();DataOutputStream dos = new DataOutputStream(os);dos.writeInt(4); // "4" means "put"dos.writeUTF(dest);BufferedInputStream bis = new BufferedInputStream(newFileInputStream(src));BufferedOutputStream bos = new BufferedOutputStream(os);dos.writeLong(new File(src).length());byte[] b = new byte[128];int len;while( (len = bis.read(b, 0, b.length)) > 0 ){bos.write(b, 0, len);}bos.flush();int a = -1;a = new DataInputStream(FtpClient.socket.getInputStream()).readInt();if(a == 1){System.out.println("finished uploading.");}else{System.out.println("failed.");}}static void quit() throws IOException{DataOutputStream dos = new DataOutputStream(FtpClient.socket.getOutputStream());dos.writeInt(5);dos.flush();FtpClient.socket.close();System.exit(0);}}。
FTP命令使用详解
FTP命令使用详解FTP命令详解及使用技巧ascii: 设定以ASCII方式传送文件(缺省值)bell: 每完成一次文件传送,报警提示.binary: 设定以二进制方式传送文件.bye: 终止主机FTP进程,并退出FTP管理方式.case: 当为ON时,用MGET命令拷贝的文件名到本地机器中,全部转换为小写字母. cd: 同UNIX的CD命令.cdup: 返回上一级目录.chmod: 改变远端主机的文件权限.close: 终止远端的FTP进程,返回到FTP命令状态,所有的宏定义都被删除.delete: 删除远端主机中的文件.dir [remote-directory] [local-file]列出当前远端主机目录中的文件.如果有本地文件,就将结果写至本地文件.get [remote-file] [local-file]从远端主机中传送至本地主机中.help [command]输出命令的解释.lcd: 改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录. ls [remote-directory] [local-file]同DIR.macdef: 定义宏命令.mdelete [remote-files]删除一批文件.mget [remote-files]从远端主机接收一批文件至本地主机.mkdir directory-name在远端主机中建立目录.mput local-files将本地主机中一批文件传送至远端主机.open host [port]重新建立一个新的连接.prompt: 交互提示模式.put local-file [remote-file]将本地一个文件传送至远端主机中.pwd: 列出当前远端主机目录.quit: 同BYE.recv remote-file [local-file]同GET.rename [from] [to]改变远端主机中的文件名.rmdir directory-name删除远端主机中的目录.send local-file [remote-file]同PUT.status: 显示当前FTP的状态.system: 显示远端主机系统类型.user user-name [password] [account]重新以别的用户名登录远端主机.: 同HELP.FTP使用技巧FTP(文件传输)和E-mail(电子邮件)、T elnet(远程登录)一样,是Internet的三大主要功能之一。
Windows批处理大全(附各种实例)
Windows批处理大全(附各种实例)批处理文件是无格式的文本文件,它包含一条或多条命令。
它的文件扩展名为 .bat 或 .cmd。
在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。
使用批处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务。
当然我们的这个版本的主要内容是介绍批处理在入侵中一些实际运用,例如我们后面要提到的用批处理文件来给系统打补丁、批量植入后门程序等。
下面就开始我们批处理学习之旅吧。
一.简单批处理内部命令简介1.Echo 命令打开回显或关闭请求回显功能,或显示消息。
如果没有任何参数,echo 命令将显示当前回显设置。
语法echo [{on|off}] [message]Sample:@echo off / echo hello world在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特定格式的文件中.这将在以后的例子中体现出来。
2.@ 命令表示不显示@后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。
Sample:@echo off@echo Now initializing the program,please wait a minite...@format X: /q/u/autoset (format 这个命令是不可以使用/y这个参数的,可喜的是微软留了个autoset这个参数给我们,效果和/y 是一样的。
)3.Goto 命令指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。
语法:goto label (label是参数,指定所要转向的批处理程序中的行。
)Sample:if {%1}=={} goto nop arm sif {%2}=={} goto nop arm s(如果这里的if、%1、%2你不明白的话,先跳过去,后面会有详细的解释。
在PB中实现ftp传输
在PB中实现ftp传输(深圳:独孤求败 2003-05-20)在用PB进行开发时常常需要用到ftp功能,最典型的应用就是将数据窗口中的数据生成txt文件,然后将此数据文件用ftp发送到远程服务器上去。
由于pb本身并未提供任何ftp的功能,因此想在pb中进行ftp传输,只能应用pb以外的资源。
以下是笔者在pb开发中总结出来的几种方法。
一、使用外部命令--- 这种方法就是在pb程序中运行Windows中自带的ftp命令。
具体做法是在程序中生成一个.bat文件,将要运行的ftp命令写到此文件中,再运行这个批处理文件。
假设ftp服务器ip为 202.114.67.2,用户名为user,口令12345,现在要将本地c:\temp\下的t00001.txt文件上传到服务器的\txtdata\目录下去。
则pb代码如下:integer li_bat //文件名指针li_bat = FileOpen(path_ftp+'get_file.bat',lineMode!, Write!, LockWrite!, Replace!)FileWrite(li_bat, 'cd c:\temp\')FileWrite(li_bat, 'ftp 202.114.67.2')FileWrite(li_bat, 'user)FileWrite(li_bat, '12345')FileWrite(li_bat, 'put t00001.txt \txtdata\t00001.txt')FileWrite(li_bat, 'bye')FileWrite(li_bat, 'exit')FileClose(li_bat)Run(path_ftp+'get_file.BAT',Minimized!)messagebox("提示信息","数据上报完毕")--- 此方法的优点是简单易行,既不要调用API函数,也不需加入OLE。
Ftp判断文件是否上传成功批处理
Ftp判断文件是否上传成功批处理开下面这个批处理是否能实现你的要求,从另一台ftp去判断@echo offrem 指定FTP用户名set ftpUser=asxrem 指定FTP密码set ftpPass=asx-asxrem 指定FTP服务器地址set ftpIP=172.19.103.42rem 指定待下载的文件位于FTP服务器的什么位置set ftpFolder=/export/home/PROD/ntcdatarem 指定从FTP下载下来的文件存放到什么地方setDownFolder=D:\AppServ\www\BadDut\data\dutbin\wright\ntd utbin-stsetDownFolder2=D:\AppServ\www\BadDut\data\dutbin\wright\nt dutbin-osetDownFolder3=D:\AppServ\www\BadDut\data\summary\wright\ ntsummary_stsetDownFolder4=D:\AppServ\www\BadDut\data\summary\wright\ ntsummary_orem 指定下载几天前的文件set DaysAgo=1set ftpDir=%temp%\TempDir.txtset ftpDown=%temp%\TempDown.txtrem 假设本机日期格式为yyyy-mm-ddset FileY=%date:~0,4%call :DateToDays %date:~0,4% %date:~5,2% %date:~8,2% PassDaysset /a PassDays-=DaysAgocall :DaysToDate %PassDays% DstYear DstMonth DstDay>"%ftpDir%" echo.%ftpUser%>>"%ftpDir%" echo.%ftpPass%>>"%ftpDir%" echo bin>>"%ftpDir%" echo cd "%ftpFolder%">>"%ftpDir%" echo dir * "%temp%\FileList.txt">>"%ftpDir%" echo byestart ftp -v -i -s:"%ftpDir%" %ftpIP%rem 根据实际情况自行调节延迟时间ping -n 350 127.1 >nulfindstr /i ":*\.SWM$" "%temp%\FileList.txt">"%temp%\FileDate.txt"findstr /i ":*\.TWM$" "%temp%\FileList.txt">>"%temp%\FileDate.txt"findstr /i ":*\.OWM$" "%temp%\FileList.txt">>"%temp%\FileDate.txt">"%ftpDown%" echo.%ftpUser%>>"%ftpDown%" echo.%ftpPass%>>"%ftpDown%" echo bin>>"%ftpDown%" echo cd "%ftpFolder%"(for /f "usebackq tokens=1-9 delims= " %%a in ("%temp%\FileDate.txt") do (setlocal enabledelayedexpansionif "%%f" equ "Jan" (set FileM=01) else if "%%f" equ "Feb" (set FileM=02) else if "%%f" equ "Mar" (set FileM=03) else if "%%f" equ "Apr" (set FileM=04) else if "%%f" equ "May" (set FileM=05) else if "%%f" equ "Jun" (set FileM=06) else if "%%f" equ "Jul" (set FileM=07) else if "%%f" equ "Aug" (set FileM=08) else if "%%f" equ "Sep" (set FileM=09) else if "%%f" equ "Oct" (set FileM=10) else if "%%f" equ "Nov" (set FileM=11) else if "%%f" equ "Dec" (set FileM=12)set FileD=10%%gset FileD=!FileD:~-2!if "!FileM!" equ "%DstMonth%" (if "!FileD!" equ "%DstDay%" (echo get "%%i" "%DownFolder%\%%i"))endlocal))>>"%ftpDown%">>"%ftpDown%" echo byestart ftp -v -i -s:"%ftpDown%" %ftpIP%rem 根据实际情况自行调节延迟时间ping -n 700 127.1 >nulcopy /y "%DownFolder%\*.*" "%DownFolder2%"ping -n 800 127.1 >nulcopy /y "%DownFolder%\*.*" "%DownFolder3%"ping -n 900 127.1 >nulcopy /y "%DownFolder%\*.*" "%DownFolder4%"goto :eof:DateToDays %yy% %mm% %dd% dayssetlocal ENABLEEXTENSIONSset yy=%1&set mm=%2&set dd=%3if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else(set yy=19%yy%)set /a dd=100%dd%%%100,mm=100%mm%%%100set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633endlocal&set %4=%j%&goto :EOF:DaysToDate %days% yy mm ddsetlocal ENABLEEXTENSIONSset /a a=%1+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=aset /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5 set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10 (if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)endlocal&set %2=%yy%&set %3=%mm%&set %4=%dd% &goto :EOF批处理的思路是当你的A的FTP没上传一个文件时把这个文件上传的路径和完整名字记录到一个指定的.txt文件内,然后下次上传的时候把总目录和这个已上传文件比对,没有则上传,这个批处理还得高人指教你。
shell调用ftp命令用法
shell调用ftp命令用法`ftp`命令的基本用法如下:```ftp [options] [hostname]```其中,`options`是一些可用的选项,`hostname`是FTP服务器的地址。
以下是`ftp`命令的一些常用选项:-`-i`:关闭交互式提示。
-`-n`:不进行自动登录。
-`-v`:详细输出。
-`-d`:启用调试模式。
接下来,我将详细介绍`ftp`命令的用法。
1.登录FTP服务器要登录FTP服务器,只需在Shell中运行`ftp`命令并指定服务器的地址。
``````出现类似以下提示时,表示已成功连接到FTP服务器。
``````然后,需要输入用户名和密码进行身份验证。
成功登录后,将显示类似以下提示:```230 Login successful.Remote system type is UNIX.```2.查看FTP服务器上的文件和目录在登录成功后,可以使用`ls`命令来查看当前目录下的文件和目录。
```ls```此命令将列出当前目录下的所有文件和目录的名称。
3.切换工作目录可以使用`cd`命令切换到FTP服务器上的不同工作目录。
```cd directory```其中,`directory`是要切换到的目录的名称。
```get filename```5.上传文件要上传文件到FTP服务器,可以使用`put`命令。
```put filename```其中,`filename`是要上传的本地文件名。
6.删除FTP服务器上的文件要删除FTP服务器上的文件,可以使用`delete`命令。
```delete filename```其中,`filename`是要删除的文件名。
7.创建目录要在FTP服务器上创建新目录,可以使用`mkdir`命令。
```mkdir directory```其中,`directory`是要创建的目录的名称。
8.删除目录要删除FTP服务器上的目录,可以使用`rmdir`命令。
ftp命令批处理下载文件
ftp命令批处理下载文件在工作中,有时候需要从服务器上下载一些固定的文件,虽然通常我们可以使用winscp等软件来登录服务器,下载相对来讲已经是比较方便了,但是试想一下,假如我们在windows上写个脚本,双击一下就可以自动下载,那么岂不是更方便么。
笔者使用场景为,总是需要从服务器上下载前端包,每次都需要登录,比较繁琐,所以想起了写一个自动化下载的脚本。
下载的前提为,服务器必须开通了ftp服务。
这只是原理,稍加修改就可以写成自动化部署的工具喽~,windows下的ftp命令非常好用,但是唯一的缺陷是不能自动删除非空文件夹,这个让笔者很是头疼。
至今没有解决。
操作说明:新建 downloadOK.bat 文本文件,粘贴代码,双击即可运行,如果开杀毒软件了,请允许此程序运行,这不是病毒哈~。
注意事项:1. 下载目录为批处理文件所在目录2. 如果当前目录下存在OK.war文件,则会先删除,然后再下载3. 此下载方式下载的OK.war 的修改日期为下载日期,与服务器上的OK.war 的日期不同,此处需要注意。
[html] view plain copyprint?1.::服务器连接信息2.set username=root3.set password=root4.set ip=xxx.xxx.xxx.xxx5.set warDir=/root/wars6.set warName=helloworld.war7.8.::清除当前目录下的OK.war文件9.del %warName%10.11.::下载war包12.@echo off13.echo open %ip%>task.txt14.echo user %username% %password% >>task.txt15.echo cd %warDir% >>task.txt16.echo get %warName% >>task.txt17.echo bye >>task.txt18.ftp -n -s:task.txt19.del task.txt20.echo ~download success~21.pause。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C:
Cd datatran
ftp–n–s:”c:\1.ftp”
新建完毕后将该文本保存为1.bat后存放在硬盘任何分区或软盘中均可。这样,第一步工作已经完成,您随时可以执行该批处理文件进行FTP文件的传输。
第二步,将该该批处理文件放在“任务计划”中设定自动运行。方法是:打开“开始”菜单“程序”下“附件”中的“系统工具”,点击“任务计划”,执行“添加任务计划”,按“任务计划向导”提示将该批处理文件添加到任务计划中,并指定执行周期,之后再设下密码后即完成。从此,计算机会根据您的设定,自动周期性地进行文件接收或发送,不再需要您动一下手指,真正做到它工作,您休息。
2003/10/27 16:52 新浪科技
文/陈虹乔
由于工作的原因,每天需要在Windows操作系统之间或与其它操作系统如UNIX等利用FTP进行文件传输。经常重复这样的工作程序,即繁琐又容易出错。本人经过思考摸索,在Windows操作系统的“任务计划”帮助下,成功地用批处理命令实现FTP文件的自动传输。现将此操作过程详解,希望对同好有所帮助,更望能抛砖引玉,提出更好的方法。
Open 10.31.15.3
User anonymous
123456
Cd data
Bin
Prompt
Mget *.*
Bye
Quit
Exit
将该文本保存为1.ftp存放到C盘根目录。该文件只要扩展名为ftp,前缀可任意取名。目录也不一定要在根目录,主要以方便为主。文本中Bin为用二进制码格式传输文件,如用ASCII码格式传输文件可去掉该行。如为本机向对方机发送文件,则只要将文本中的Mget替换成Mput即可。这之后,再新建另一个文本:
另外,如果是Windows操作系统之间进行FTP进行文件传输,只要去掉1.ftp中“Bin”一行就可以了。
假设本机操作系统为Windows操作系统,需进行文件传输的目录为C:\datatran;对方
计算机操作系统为UNIX操作系统,IP地址为10.30.15.3,需进行文件传输的目录为C:\data,登录用户名为Anonymous,口令为123456。从本机到对方机
用批处理命令实现FTP文件的自动传输.txt人生在世 ,难敌宿命,沉沦其中。我不爱风尘,似被前缘误!!我只为我最爱的人流泪“我会学着放弃你,是因为我太爱你”赢了你,我可以放弃整个世界用批处理命令实现FTP文件的自动传输
--------------------------------------------------------------------------------