使用PowerShell中的WinSCP .NET程序集在SFTP服务器上重命名文件

时间:2017-10-11 09:01:58

标签: powershell sftp winscp winscp-net

尝试将文件从一个文件夹(上传文件夹)移动到另一个(存档)时出现以下错误,该文件在使用PowerShell中的WinSCP .NET程序集的SFTP服务器上可用:

You cannot call a method on a null-valued expression.
At C:\Attendance Integration\Scripts\Power Shell 
 Script\Download&MoveToArchive.ps1:28 char:5
+     $Sftp.RenameRemoteFile($existingFilepath,$newFilepath)
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

以下是我用来传输文件的代码:

# Connect
$session.Open($sessionOptions)

$existingFilepath = "/upload/attendance v2-201709220930.csv"
$newFilepath = "/Archive/attendance v2-201709220930.csv"

# Transfer files
$session.GetFiles($existingFilepath,"C:\Transfer Files\Attendance Files\*").Check()

$Sftp.RenameRemoteFile($existingFilepath,$newFilepath)

2 个答案:

答案 0 :(得分:0)

您错过了$Sftp作业

答案 1 :(得分:0)

使用Session.MoveFile method

$session.MoveFile($existingFilepath, $newFilepath)

你的代码没有任何意义:

$Sftp.RenameRemoteFile($existingFilepath,$newFilepath)