如何使用 PuTTY 批处理文件将最后修改的文件从远程服务器下载到本地
How to download last modified file from remote server to local using PuTTY batch file
我对 putty 批处理文件有疑问。这是我的 .bat
文件:
C:
cd Program Files (x86)\PuTTY
pscp -2 -v -pw khair1 -sftp abc@****.na.ab.com:/qwe/asd/tryu/*.csv.zip P:\Projects\abc\Test_bacth\Batch_download
pause"
所以每周我都必须给文件名 /qwe/asd/tryu/**04242016***.csv.zip
如何动态获取最后修改的所有文件。
您可以使用这些命令生成今天的邮票:
for /F "usebackq tokens=1,2 delims==" %%i in (`wmic os get LocalDateTime /VALUE 2^>NUL`) do if '.%%i.'=='.LocalDateTime.' set LDT=%%j
set STAMP=%LDT:~0,4%%LDT:~4,2%%LDT:~6,2%
echo %STAMP%
见How do I get current datetime on the Windows command line, in a suitable format for using in a filename?
或者使用更强大的 SFTP/SCP 客户端。
例如WinSCP scripting,你可以这样做:
"C:\Program Files (x86)\WinSCP\WinSCP.com" /command ^
"open sftp://abc:password@****.na.ab.com/ -hostkey=""ssh-rsa 2048 xxxxxxxxxxx...=""" ^
"get /qwe/asd/tryu/%%TIMESTAMP#yyyymmdd%%*.csv.zip ""P:\Projects\abc\Test_bacth\Batch download\""" ^
"exit"
参见 documentation for the %TIMESTAMP%
syntax。
如果时间戳实际上不是今天的,不用指定时间戳,只需下载每个pattern/mask.
的最新文件即可
使用 WinSCP 很简单,只需使用 -latest
switch:
"C:\Program Files (x86)\WinSCP\WinSCP.com" /command ^
"open sftp://abc:password@****.na.ab.com/ -hostkey=""ssh-rsa 2048 xxxxxxxxxxx...=""" ^
"lcd ""P:\Projects\abc\Test_bacth\Batch download""" ^
"cd /qwe/asd/tryu" ^
"get -latest *_cpg_aob_detail.csv.zip" ^
"get -latest *_fmcg_cob_detail.csv.zip" ^
...
"exit"
另见其他 options for downloading the most recent files。
(我是WinSCP的作者)
我对 putty 批处理文件有疑问。这是我的 .bat
文件:
C:
cd Program Files (x86)\PuTTY
pscp -2 -v -pw khair1 -sftp abc@****.na.ab.com:/qwe/asd/tryu/*.csv.zip P:\Projects\abc\Test_bacth\Batch_download
pause"
所以每周我都必须给文件名 /qwe/asd/tryu/**04242016***.csv.zip
如何动态获取最后修改的所有文件。
您可以使用这些命令生成今天的邮票:
for /F "usebackq tokens=1,2 delims==" %%i in (`wmic os get LocalDateTime /VALUE 2^>NUL`) do if '.%%i.'=='.LocalDateTime.' set LDT=%%j
set STAMP=%LDT:~0,4%%LDT:~4,2%%LDT:~6,2%
echo %STAMP%
见How do I get current datetime on the Windows command line, in a suitable format for using in a filename?
或者使用更强大的 SFTP/SCP 客户端。
例如WinSCP scripting,你可以这样做:
"C:\Program Files (x86)\WinSCP\WinSCP.com" /command ^
"open sftp://abc:password@****.na.ab.com/ -hostkey=""ssh-rsa 2048 xxxxxxxxxxx...=""" ^
"get /qwe/asd/tryu/%%TIMESTAMP#yyyymmdd%%*.csv.zip ""P:\Projects\abc\Test_bacth\Batch download\""" ^
"exit"
参见 documentation for the %TIMESTAMP%
syntax。
如果时间戳实际上不是今天的,不用指定时间戳,只需下载每个pattern/mask.
的最新文件即可使用 WinSCP 很简单,只需使用 -latest
switch:
"C:\Program Files (x86)\WinSCP\WinSCP.com" /command ^
"open sftp://abc:password@****.na.ab.com/ -hostkey=""ssh-rsa 2048 xxxxxxxxxxx...=""" ^
"lcd ""P:\Projects\abc\Test_bacth\Batch download""" ^
"cd /qwe/asd/tryu" ^
"get -latest *_cpg_aob_detail.csv.zip" ^
"get -latest *_fmcg_cob_detail.csv.zip" ^
...
"exit"
另见其他 options for downloading the most recent files。
(我是WinSCP的作者)