FTP:mget匹配文件名后下载

时间:2023-03-09 19:48:16
FTP:mget匹配文件名后下载

需求:从FTP某目录取每日构建的apk下载到本地

难点:文件名中有构建时间,而这个时间不算固定值,因此文件名不固定

解决方案:mget匹配文件名后下载

BAT版本:

:: Filename:Projectname_2019-03-04_0123.apk

@echo off
set date1=%date:~0,4%-%date:~5,2%-%date:~8,2%
set "str1=Projectname_"
set "Filename=%str1%%date1%"
echo %Filename% set h=10.0.0.1
set user=ftpusername
set passwd1=ftppassword
set ftpdir=/ftpdir
set localdir=D:\
echo open %h%>ftp.txt
echo %user%>>ftp.txt
echo %passwd1%>>ftp.txt
echo prompt off >>ftp.txt
echo cd "%ftpdir%" >>ftp.txt
echo lcd "%localdir%">>ftp.txt
echo mget "%Filename%*.apk">>ftp.txt
echo close>>ftp.txt
echo bye>>ftp.txt ftp -s:ftp.txt

Shell版本:

#!/bin/bash

ftp=10.0.0.1
user=ftpusername
pwd=ftppassword
date=`date +%Y-%m-%d`
filename="Projectname_${date}"
dir=/tmp/
echo $date,$filename ftp -n<<!
open $ftp
user $user $pwd
binary
cd dir
dir ${filename}*
mget ${filename}*
close
bye
!

BAT与Shell差别

1.mget语法

Bat:mget "%Filename%.apk"

Shell:mget ${filename}

2.Bat运行mget时,默认需回应y,如需自动下载,得加命令:prompt off关闭交互式提示