2015-09-02 50 views
2

我們有一個共享的FTP站點,每天都有文件上傳,我需要下載並運行檢查。我只是試圖自動化這個過程。 FTP文件類似name_20150901.xml從FTP站點獲取最新文件的批量/宏代碼

到目前爲止,我有一個批處理文件來獲取文件,但我無法弄清楚如何獲得最新的。這裏是我的代碼:

@ftp -i -s:"%~f0"&GOTO:EOF 
open ftp.site.com 
<user> 
<pass> 
lcd my local direc 
binary 
get todaysfile_20150901.xml 

什麼樣的變化,我需要閱讀的文件,並獲得最新的一個?我的最終目標是擁有一個調用此宏的宏,然後讀取從FTP抓取的文件並運行我的檢查。

回答

3

沒有簡單的方法來選擇ftp.exe的最新文件。

  • 如果知道該文件還有今天的時間戳,您可以與今天的時間戳動態生成的腳本。您可以使用DATE環境變量,儘管它有一些注意事項。更可靠(也是更復雜)的方法是使用wmic os get LocalDateTime

    How to get current datetime on Windows command line, in a suitable format for using in a filename?

  • 如果你可以按字母順序確定最新的文件,您可以:

    • 與重定向到一個文件
    • 排序ls命令由字母在運行ftp.exe文件降序
    • 閱讀第一行
    • 生成一個下載腳本E二次ftp.exe運行
  • WinSCP可以下載過去24小時內創建的文件(1天):

    winscp.com /command^
        "open ftp://user:[email protected]/"^
        "lcd c:\my\local\direc"^
        "get *>=1D"^
        "exit" 
    
  • 如果你真的需要下載最新的文件(按時間戳),你可能需要一些更高級的腳本。例如,downloading the most recent file with WinSCP有一個指南。

    (我的WinSCP的作者)