2016-10-06 24 views
2

は、私はこのコードを試してみましたFTPから今日と昨日より新しいデータをダウンロードするには?

を.xlsx形式の変数昨日と今日、この

Daily_(市)などの構造ファイル_(YYYYMMDD)と名前のファイルで私のFTPから新しいデータをダウンロードしたいです

daily.bat

winscp.exe /console /script=daily.txt 

daily.txt

私はこのスクリプトが起こらない実行している場合は0
::: Begin set date 

for /f "tokens=1-4 delims=/-. " %%i in ('date /t') do (call :set_date %%i %%j %%k %%l) 
goto :end_set_date 

:set_date 
if "%1:~0,1%" gtr "9" shift 
for /f "skip=1 tokens=2-4 delims=(-)" %%m in ('echo,^|date') do (set %%m=%1&set %%n=%2&set %%o=%3) 
goto :eof 

:end_set_date 
::: End set date 

set /a today=%dd% 
set /a yesterday=%dd%-1 

@echo off 
open [email protected] 
get -neweronly "/Reg8/Kota/2016/Daily/Daily_Makassar_%yy%%mm%%today%.xlsx" "D:\FTP\Makassar\2016\daily" 
get -neweronly "/Reg8/Kota/2016/Daily/Daily_Makassar_%yy%%mm%%yesterday%.xlsx" "D:\FTP\Makassar\2016\daily" 
pause 

...あなたは、WindowsとWinSCPのを組み合わせている

答えて

3

は、単一のファイルにコマンド。それは可能ではありません。まず、guide to automating file transfers from FTP server or SFTP serverを読んでください。

WinSCP %TIMESTAMP% syntaxを使用していないため、スクリプトが複雑すぎます。


簡単な方法(daily.txt):

open ftp://user:[email protected]/ 
get -neweronly "/Reg8/Kota/2016/Daily/Daily_Makassar_%TIMESTAMP#yyyymmdd%.xlsx" "D:\FTP\Makassar\2016\daily" 
get -neweronly "/Reg8/Kota/2016/Daily/Daily_Makassar_%TIMESTAMP-1D#yyyymmdd%.xlsx" "D:\FTP\Makassar\2016\daily" 

(これだけ、あなたのdaily.txtから他のすべてのコードを破棄)

%TIMESTAMP#yyyymmdd%20161006に解決されます。
%TIMESTAMP-1D#yyyymmdd%20161005(2016-10-06現在)に解決されます。

これにはWinSCP 5.9以降が必要です。


また、一般的に、あなたは、バッチファイルからwinscp.com、ないwinscp.exe /consoleを呼び出す必要があります。

関連する問題