[英]Windows batch file - Upload only latest file to FTP
我想從 Windows 服務器到我的 FTP 進行自動文件傳輸。
問題是文件的名稱中帶有時間戳(名稱不固定)。 所以我只需要上傳文件的最后一個版本(最新)。 有沒有辦法做到這一點?
在 Windows Server 2003 下運行。謝謝。
要選擇 Windows 批處理文件中的最新文件,請參閱
如何編寫 Windows 批處理腳本以從目錄中復制最新文件?
基於此,您可以創建一個上傳批處理文件,例如:
@echo off
FOR /F %%I IN ('DIR C:\source\path\*.* /B /O:D') DO SET NEWEST_FILE=%%I
echo Uploading %NEWEST_FILE%
(
echo open ftp.example.com
echo username
echo password
echo put C:\source\path\%NEWEST_FILE% /target/path/%NEWEST_FILE%
echo bye
) > ftp.txt
ftp.exe -s:ftp.txt
要獲得更簡單、更可靠的方法,請使用一些更強大的 3rd 方 FTP 客戶端。
例如,對於WinSCP FTP 客戶端,您可以使用其put
命令的-latest
開關。
示例批處理文件 ( .bat
):
winscp.com /ini=nul /command ^
"open ftp://username:password@ftp.example.com/" ^
"put -latest C:\source\path\* /target/path/" ^
"exit"
您甚至可以讓WinSCP 為您生成腳本/批處理文件(您只需要手動添加-latest
開關)。
(我是 WinSCP 的作者)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.