用 Windows 批处理中的 ftp 命令上传动态文件名的文件

   Updated: 2012-10-06 17:18       用 Windows 批处理中的 ftp 命令上传动态文件名的文件无评论

ftp 传输,我们一般使用 FTP 传输软件,如 CuteFTP、FlashPXP 等软件。但在某些场合,用 ftp 命令能达到事半功倍的效果,比如利用 Windows 批处理中的 ftp 命令,只要双击批处理文件,就可以将预先定义的文件上传至 ftp 服务器了。

Windows 下用 ftp 命令上传文件的基本步骤:

命令提示符中输入 ftp
open FTP 服务器地址
用户名
密码
put C:\aaa.rar aaa.rar
bye

如果每次的操作是固定的,我们可以将上述命令存为 ftpcommend.bat 批处理文件,双击即执行上传,非常方便。

ftp 命令要求文件名是确定的,如果文件名是以某种规律(如按照日期命名的文件名)动态变化,这个时候就要用到 windows 批处理中的参数传递临时文件这 2 个东西了。

关于批处理中的参数:

  1. 批处理文件中的%1、%2...=外部命令的第一个和第二个... 参数。比如外部命令为 AAA.bat a b c,那么在执行 AAA.bat 批处理时,a、b、c 就分别作为第一第二第三个参数传递给 AAA.bat 文件中的%1、%2、%3 使用。
  2. 关于批处理参数请参考:批处理参数点点谈

例子:用 ftp 批处理上传以日期动态命名的文件(L11011+yyyymmdd.txt)。按如下步骤来操作(//后为注释):

一、将下面的命令保存为.bat 批处理文件,如 ftpcommend.bat

@echo off
echo open 192.168.0.6>>ftpcommand.txt  //将 echo 回显结果记录到 ftpcommend.txt 文件中,下同
echo user>>ftpcommand.txt  //这里的 FTP 地址端口、用户名、密码等根据实际情况修改即可
echo password>>ftpcommand.txt
if "%1" == "" pause
if "%1" == "put" echo put c:\%2 %2>>ftpcommand.txt
echo bye >>ftpcommand.txt
ftp -s:ftpcommand.txt  //执行 ftpcommend.txt 中的语句
del ftpcommand.txt  //这里要删除临时文件(自己执行的时候查看 ftpcomment.txt 这个文件就知道删除的原因了)
cls
@echo ==========================
@echo 数据上传成功,按任意键退出
@echo ==========================
pause

二、然后再建立一个 main.bat 的批处理文件,内容如下:

ftpcommand.bat put L11011%date:~0,4%%date:~5,2%%date:~8,2%.txt //这里有两个参数 「put」 和 「L11011%date:~0,4%%date:~5,2%%date:~8,2%.txt」 将分别传递给 ftpcommend.bat 文件中的%1 和%2;

双击 main.bat 文件时,就可以执行文件上传的命令了,并且只上传文件名为今天日期的文件。

echo、%date% 等命令的详细用法可 Google 之或查看本文的参考资料。

参考资料:

  1. ftp 命令大全及应用实例
  2. Windows 下通过 FTP 自动上传和下载动态文件名
  3. 批处理参数点点谈
  4. windows 下%date:~0,10% 用法
  5. 在 Windows 批处理中获取系统日期、时间戳记

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注