我使用Powershell从ftp站点下载新文件

我使用Powershell从ftp站点下载新文件,powershell,ftp,Powershell,Ftp,我的脚本从ftp站点下载一个硬编码的文件名及其数据,但我需要它来下载最新的文件和(可能是最后下载的时间戳)。我刚开始使用powershell,并已寻找线索使我的脚本更复杂,但似乎无法使我发现的大部分代码正常工作。你能告诉我一些方向吗?这是我当前的代码: # Create FTP Connection $FTPRequest = [System.Net.FtpWebRequest]::Create("ftp://ftp.sitepath/newestfile.txt") $FTPReques

我的脚本从ftp站点下载一个硬编码的文件名及其数据,但我需要它来下载最新的文件和(可能是最后下载的时间戳)。我刚开始使用powershell,并已寻找线索使我的脚本更复杂,但似乎无法使我发现的大部分代码正常工作。你能告诉我一些方向吗?这是我当前的代码:

  # Create FTP Connection
$FTPRequest = [System.Net.FtpWebRequest]::Create("ftp://ftp.sitepath/newestfile.txt") 
$FTPRequest.Credentials = New-Object System.Net.NetworkCredential("username", "pw") 
$FTPRequest.Method = [System.Net.WebRequestMethods+Ftp]::DownloadFile

$FTPRequest.UsePassive = $false
$FTPRequest.UseBinary = $true
$FTPRequest.KeepAlive = $false
$folderName = (Get-Date).tostring("dd-MM-yyyy-hh-mm-ss")            
New-Item -itemType Directory -Path \\server\directory\ -Name $FolderName
$targetfile = New-Object  
IO.FileStream "\\server\directory\$FolderName\newestfilename.txt"),        [IO.FileMode]::Create)
# Get FTP File
$FTPResponse = $FTPRequest.GetResponse()
$ResponseStream = $FTPResponse.GetResponseStream()
$FTPReader = New-Object -typename System.IO.StreamReader -ArgumentList $ResponseStream
[byte[]]$readbuffer = New-Object byte[] 1024

#loop through the download stream and send the data to the target file
do{
    $readlength = $ResponseStream.Read($readbuffer,0,1024)
    $targetfile.Write($readbuffer,0,$readlength)
}
while ($readlength -ne 0)
$FTPReader.Close()

$FTPReader.Close()

Thank you for your help.

使用Powershell FTP Module()-然后您可以专注于您的业务逻辑,而不是让“FTP部分”发挥作用。

您说的“似乎无法让我发现的大部分代码发挥作用”是什么意思?请进一步解释您遇到的问题。另外,关于获取最新文件,您在那里尝试了什么,以及在尝试中发现了哪些问题?我将再试一次。Powershell目前尚未识别FTP功能。我把代码放在我能在机器上找到的每个“模块”文件夹里。我会继续努力,这似乎是最好的办法。谢谢