リモート 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
変数を使用して新しいファイルの場所を生成すると、うまくいくと思いました。
これを試すと、
Rename-FTPItem : "0" 個の引数を指定して "GetResponse" を呼び出し中に例外が発生しました: "リモート サーバーがエラーを返しました: (550) ファイルを利用できません (たとえば、ファイルが見つからない、アクセスできません)。"
ワイルドカードを使用してファイルを移動する方法、または私がやろうとしていることを達成するためのより良い方法はありますか?
前もって感謝します