WinSCP-如何压缩、下载和删除文件?

WinSCP-如何压缩、下载和删除文件?

如何在 WinSCP 中压缩、下载和删除(ZDD)文件?

例如,您的本地目录是桌面,而您的远程目录(服务器计算机中的目录)是,/var/www/html并且您想要压缩并下载特定目录或文件,然后您希望在下载完成后立即将其删除。


在此处输入图片描述


为了进一步解释,在 Linux 中我可以这样做,例如:

(
zip -r /var/www/html/dr.zip /var/www/html
scp /var/www/html/dr.zip USER@IP:/location
rm /var/www/html/dr.zip
)

我需要类似的东西用于 WinSCP,但我知道WinSCP下载机制应该使用,并且它与 Nixscp实用程序不同。

我的问题:

您知道如何使用 WinSCP 实现这一点吗?

答案1

无法通过任何文件传输协议(SFTP、FTP、SCP 或 WebDAV)压缩文件。这就是为什么 WinSCP 中没有此功能,因为它无法可靠地实现。


不过,如果你有服务器的 shell 访问权限,你可以使用 shell 命令来压缩文件。实际上,这就是焦油/GZip 自定义命令做。

如果你想一次性获得(压缩并下载),现在有一个WinSCP 扩展它的作用是:
将远程文件存档到 ZIP 存档中,下载并可选择提取

答案2

在自定义命令下,现在有一个选项可以“存档并下载”文件或目录。您可以使用该命令并在下载后删除该文件。

如果你经常这样做,并且确实希望在下载后自动删除,你可以修改 Powershell 脚本以在下载后删除文件。我将针对 WinSCP 版本 5.17.6 进行解释

在编辑器中打开此文件:c:\Program Files (x86)\WinSCP\Extensions\ArchiveDownload.WinSCPextension.ps1

第 151 行应包含:

$session.GetFiles($source, $target, $True).Check()

在我上面提到的行后面添加以下几行:

$commands = "rm -rf $filesArgs"
$result = $session.ExecuteCommand($commands)
$result.Check()

相关内容