尽管有许多知名的FTP客户端软件可以上传和下载文件,但是在某些自动化场景中,我们更倾向于不引进第三方工具,而是使用PowerShell来完成这些任务。此时,.NET Framework中的System.Net.FtpWebRequest类首当其冲。对它稍加封装,就可以生成一个简易的FTP工具。
PowerShell自然可以动态调用这个类,或者你都不用调用,某位仁兄MichalGajda已经帮你做了90%的工作了,来自微软脚本中心:《PowerShell FTP客户端组件》。
- 建立FTP连接: Set-FTPConnection
- 查看FTP目录:Get-FTPChildItem
- 查看FTP文件或者目录的大小: Get-FTPItemSize
- FTP上传文件:Add-FTPItem (Send-FTPItem)
- FTP下载文件:Get-FTPItem (Receive-FTPItem)
- 重命名远程文件: Rename-FTPItem
- 删除远程文件: Remove-FTPItem
本文链接: https://www.pstips.net/get-and-post-file-by-ftp.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
如果只是上传和下载文件,那么WebClient本身的UploadFile和DownloadFile也是可以使用的。
Invoke-WebRequest 亦可一战,当然这些都是打打酱油,断点续传什么的还是有专业的 Module 好
是的,WebRequest 是FTPWebRequest的父类。
不晓得这个FTP支持断点续传功能不?
这个工具本身没有提供断点续传。但是你自己可以使用FtpWebRequest,稍加改造,让它支持断点续传。
我遇到了一个问题求赐教,
本地目录下面有子目录及里面的文件。此时ftp服务器上没有该目录,上传的时候,无法上传该目录及其目录里面的内容。
我在想,怎么可以判断ftp上是否已经有该目录了。如果没有,就通过组件创建一个目录,若是有了,就不创建了,开上传该目录里面的内容。
求赐教 谢谢。