这篇文章介绍了使用 Ant 构建脚本以及 WinSCP 进行文件的上传和下载操作。详细说明了各个命令和参数的作用,包括在命令中指定的 WinSCP 可执行文件路径、连接远程服务器的方式、文件传输模式设置、下载和上传文件的路径等。示例中展示了针对文件下载和上传分别设计的任务(target),以及相应的 XML 配置代码。
文件下载
winscp.executable
为winscp安装路径 ,如:`C:/Program Files (x86)/WinSCP/WinSCP.com
/console
: 在控制台模式下运行 WinSCP。
/command
: 指定要执行的命令。
option batch continue
: 设置 WinSCP 在遇到错误时继续批处理操作
option confirm off
: 关闭文件传输的确认提示。
open sftp://${src.username}:${pwd}@${src.host}:22 -hostkey=*
: 打开一个 SFTP 连接到${src.host}
(应该是另一个 Ant 属性,表示服务器地址),使用${src.username}
(用户名)和${pwd}
(密码)进行身份验证
-hostkey=*
参数会告诉客户端接受任何主机密钥,即使它与先前记录的不同也会被接受
option transfer binary
: 设置传输模式为二进制。
get /app/server/file ${basedir}\${target.dir}\file
: 从远程服务器上的/app/server/file
路径下载文件到本地${basedir}\${target.dir}\file
路径。
exit
: 关闭 WinSCP 会话。
/log=log_file.txt
: 将日志输出到log_file.txt
文件中。
<target name="download" description="下载文件" >
<exec executable="${winscp.executable}">
<arg value="/console" />
<arg value="/command" />
<arg value="option batch continue" />
<arg value="option confirm off" />
<arg value="open sftp://${src.username}:${pwd}@${src.host}:22 -hostkey=*" />
<arg value="option transfer binary" />
<arg value="get /app/server/file ${basedir}\${target.dir}\file" />
<arg value="exit" />
<arg value="/log=log_file.txt" />
</exec>
</target>
文件上传
<target name="upload" description="上传文件" >
<exec executable="${winscp.executable}">
<arg value="/console" />
<arg value="/command" />
<arg value="option batch continue" />
<arg value="option confirm off" />
<arg value="open sftp://${src.username}:${pwd}@${src.host}:22 -hostkey=*" />
<arg value="option transfer binary" />
<arg value="put ${basedir}\${target.dir}\file /app/server/file " />
<arg value="exit" />
<arg value="/log=log_file.txt" />
</exec>
</target>