我制作了一个执行基本任务的脚本,它连接到远程FTP站点,检索XML文件并在之后删除它们。
唯一的问题是,在过去我们丢失了文件,因为它们是在删除语句运行时添加的。
open ftp.site.com
username
password
cd Out
lcd "E:\FTP\Site"
mget *.XML
mdel *.XML
bye
为了防止这种情况发生,我们希望在FTP服务器上放置一个脚本(rename-files.ps1
)。该脚本会将*.xml
文件重命名为*.xml.copy
。
唯一的问题是我不知道如何通过我的FTP连接运行脚本。
答案 0 :(得分:0)
一些(但很少)FTP服务器支持SITE EXEC
命令。如果您的FTP服务器支持它的极少数情况,您可以使用:
quote SITE EXEC powershell rename-files.ps1
但是,在大多数情况下,如果FTP是访问服务器的唯一方式,则无法在FTP服务器上执行任何操作。您将不得不使用另一种方法来执行脚本,如SSH,PowerShell Remoting等。
但您的问题还有其他解决方案:
两者都可行,但您需要比Windows ftp.exe
更好的FTP客户端
请参阅示例A WinSCP script to download, rename, and move files。
或者你可以这样做:
ftp.exe
一次以检索文件列表; ftp
脚本,其中get
和del
命令用于特定文件(不带通配符); ftp.exe
。实际上,您不需要在PowerShell中使用ftp.exe
。 .NET程序集有自己的FTP实现:FtpWebRequest
。