在PowerShell中使用WinSCP从SFTP服务器下载具有特定文件名模式的最新文件

时间:2019-06-20 00:06:52

标签: powershell sftp winscp

我必须从SFTP位置复制带有文件掩码FileName_A_*的最新文件,并将它们放在共享驱动器中。

我尝试使用WinSCP。我用以下代码创建了一个Mostrecent.txt文件,并将其放在C:\Program Files (x86)\WinSCP下。另一个批处理文件Mostrecent.bat,用于从HourlyFile.txt

执行脚本

Mostrecent.txt

option batch abort
option confirm off
open sftp..........
$source = '/outbound/test'
$destination = '\\sharedrive\'
@(Get-ChildItem $source -Filter FileName_A_* | Sort LastWriteTime -Descending)[0] | % { Copy-Item -path $_.FullName -destination -force} 
exit

Mostrecent.txt

option batch abort
option confirm off
open sftp..........
$dir= '/outbound/test/FileName_A_*'
get  Dir | select -last 1 \\sharedrive
exit

SFTP位置将包含具有不同文件名和扩展名的不同文件。我只需要复制文件模式为FileName_A_*的最新文件。文件名将为:

FileName_A_20190619100000.txt
FileName_A_20190619110007.txt
FileName_A_20190619120040.txt
FileName_A_20190619130100.txt

1 个答案:

答案 0 :(得分:2)

您不能在WinSCP脚本中使用PowerShell构造。

WinSCP具有内置功能,可以下载最新文件:the -latest switch of the get command

因此您的Mostrecent.txt文件可以是:

option batch abort
option confirm off
open sftp://..........
get -latest /outbound/test/FileName_A_* \\sharedrive\
exit

另请参阅: