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

Download most recent file of specific file name pattern from SFTP server using WinSCP in PowerShell

我必须从 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

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

WinSCP 具有 built-in 下载最新文件的功能: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

另请参阅: