我有一个脚本可以将文件从一台服务器传输到另一台服务器。 有了这个,我需要有一部分脚本来删除目标文件夹上超过 X 天的文件。
我检查了WinSCP文档、论坛和所有其他信息,但我没有找到任何信息,任何人都可以帮助我。
我已经尝试循环进入文件夹并删除每个文件超过 X 天,但没有任何效果。
不,简单的 WinSCP 脚本是不可能的。
但是使用 WinSCP .NET 程序集和例如,这很容易PowerShell 脚本。
在我回答这个问题的最后,你会找到非递归删除的完整代码:
使用 PowerShell 或批处理文件从 FTP 服务器删除超过 X 天的文件
Session.EnumerateRemoteFiles
对其进行修改,如下所示:
$oldFiles =
$session.EnumerateRemoteFiles(
"/remote/path", $Null, [WinSCP.EnumerationOptions]::AllDirectories) |
Where-Object { -Not $_.IsDirectory } |
Where-Object { $_.LastWriteTime -lt $limit }