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

Renaming file on SFTP server with WinSCP .NET assembly in PowerShell

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

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)

您缺少 $Sftp作业

使用Session.MoveFile method:

$session.MoveFile($existingFilepath, $newFilepath)

你的代码没有任何意义:

$Sftp.RenameRemoteFile($existingFilepath,$newFilepath)