我需要将远程 FTP 服务器上的文件Test
从Tested
. 文件总是.csv
,但名称会随着时间戳而改变。使用 PSFTP 模块,我编写了以下内容
$FtpServer = "ftp://myftpserver.com/"
$User = "myusername"
$PWD = "mypassword"
$Password = ConvertTo-SecureString $Pwd -AsPlainText -Force
$FtpCredentials = New-Object System.Management.Automation.PSCredential ($User, $Password)
Set-FTPConnection -Credentials $FtpCredentials -Server $FtpServer -Session MyFtpSession -UsePassive
$FtpSession = Get-FTPConnection -Session MyFtpSession
$ServerPath = "ftp://myftpserver.com/Test"
$fileList = Get-FTPChildItem -Session $FtpSession -Path $ServerPath -Filter *.csv
$archivefolder = "ftp://myftpserver.com/Tested"
foreach ($element in $fileList )
{
$filename = $ServerPath + $element.name
$newfilename = $archivefolder + $element.name
Rename-FTPItem -Path $filename -NewName $newfilename -Session $FtpSession
}
这些文件确实存在于Test
文件夹中,但尚不存在于存档 ( Tested
) 文件夹中。我认为通过使用变量来生成新的文件位置应该是可行的。
当我尝试这个时,我得到
重命名-FTPItem:使用“0”参数调用“GetResponse”的异常:“远程服务器返回错误:(550) 文件不可用(例如,找不到文件,无法访问)。”
有没有办法在使用通配符时移动文件,或者有更好的方法来实现我想要做的事情?
提前致谢