提问人:João Garcia 提问时间:11/15/2023 最后编辑:Martin PrikrylJoão Garcia 更新时间:11/17/2023 访问量:34
是否可以递归删除 WinSCP 批处理文件中超过 X 天的文件?[关闭]
Is it possible to recursively delete files with more than X days in WinSCP batch file? [closed]
问:
闭。这个问题正在寻求有关书籍、工具、软件库等的建议。它不符合 Stack Overflow 准则。它目前不接受答案。
我们不允许提出有关书籍、工具、软件库等建议的问题。您可以编辑问题,以便用事实和引文来回答。
8天前关闭。
社群在 7 天前审查了是否重新打开这个问题,并关闭了这个问题:
原始关闭原因未解决
我有一个脚本可以将文件从一台服务器传输到另一台服务器。 有了这个,我需要有一部分脚本来删除目标文件夹中超过 X 天的文件。
我查看了 WinSCP 文档、论坛和所有其他信息,但我没有发现任何东西,任何人都可以帮助我。
我尝试过循环进入文件夹并在超过 X 天的时间内删除每个文件,但没有任何效果。
答:
0赞
Martin Prikryl
11/15/2023
#1
不可以,使用简单的 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 }
评论