有些时候,我们会遇到一些特别的应用场景,比如在指定的时间上传指定的文件到公司的FTP服务器上的指定目录中,并且在另一指定时间删除。
        初步应对方案:记备忘录,便签贴、电脑、手机等多种备忘方式提醒,然后在指定的时间通过FTP软件将指定文件上传至服务器,同样的方法在指定时间删除指定的文件。此方法看似可行,但实际执行起来太难,一是如果指定时间为非工作时间,如凌晨等时间段,非常不可行;二是备忘的方式也不保险,容易造成遗漏。
        为了万无一失,对命令行下的FTP命令进行了一番研究,结合批处理及Windows的“任务计划”打造了一个“FTP机器人”,可根据需要按需更改命令中对应的参数,从而轻松实现要求。现将实现方法与大家共享,希望对一些有类似需求的朋友有所帮助。
        情景设定:要求在6月1日凌晨2点上传1.txt文件至FTP服务器的wwwroot目录中,在6月1日凌晨3点钟删除该文件。
        解决步骤:
        第一步:在本机的D:盘新建一名为TFP的文件夹,将需要上传1.txt文件放至此文件夹中。
        第二步:在D:\FTP目录下分别新建文件名为task-up.txt和task-d.txt的纯文本文件(其文件名可根据自己的需要随便取,便于记忆与识别就好),文件内容分别如下(双斜线“//”之后的部分为注释,实际操作时无需输入)。
task-up.txt文件内容
username                     //登录FTP服务器的用户名
password                     //登录FTP服务器的密码
cd wwwroot                //将远程目录更改为wwwroot
put d:\ftp\1.txt            //将D:\FTP\1.txt文件上传至FTP服务器
quit                            //退出FTP服务器

task-d.txt文件内容
username                     //登录FTP服务器的用户名
password                     //登录FTP服务器的密码
cd wwwroot                //将远程目录更改为wwwroot
delete d:\ftp\1.txt        //删除FTP服务器上的1.txt文件
quit                            //退出FTP服务器

        第三步:在D:\FTP目录下分别新建文件名为task-up.bat和task-d.bat的批处理文件,批处理文件内容如下(双斜线“//”之后的部分为注释,实际操作时无需输入)。
task-up.bat文件内容
ftp -s:d:\ftp\task-up.txt 127.0.0.1    //127.0.0.1为FTP服务器的IP地址(下同)
task-d.bat
ftp -s:d:\ftp\task-d.txt 127.0.0.1

        小提示:
        1.FTP命令后面的“-s:d:\ftp\task-up.txt”参数表示让FTP命令依次执行文本中设定的命令。
        2.为了保证按照计划执行相应的操作,确保文件的扩展名为“.bat”或“.cmd”,而不是“.bat.txt”这种类型,从文件的图标也可以很容易分辨,请在实际操作时注意这一点。
        3.命令行FTP命令的更详细用法可使用“ftp -?”的方式查看。
        第四步:依次单击“开始”→“所有程序”→“附件”→“系统工具”→“任务计划”,在打开的窗口中单击“添加任务计划”执行Windows任务计划程序,在选择程序对话框中单击“浏览”按钮选择编辑好的批处理文件,根据实际的需要选择“运行方式”,这里选择“一次性”,然后按照实际情况设定运行的时间和日期,接下来输入执行该任务计划的用户名及密码,最后单击“完成”按钮完成计划任务的添加。
双剑合璧,造个FTP机器人

        经过这样的一系列设定之后,我们的FTP机器人就算打造成功了,经实际测试,效果还是非常理想的,在没有加“quit”命令的情况下执行效果如下图所示。
双剑合璧,造个FTP机器人

        PS:
        1.貌似现在仍然没有一款FTP客户端工具提供定时操作功能,还是我没有发现?期待有人提供更好的解决方案。
        2.通过此案例再一次体会到命令行的“强大”,虽然在某些操作上“易控性”似乎不如图形界面,但很多时候,命令行的优势还是图形界面所无法比拟的。相信这也是微软一直没有放弃命令行的原因,并且最新的PowerShell功能更加强大。

转载于:https://blog.51cto.com/windyli/317639

相关文章: