找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 20622|回复: 2

[转载代码] PowerShell中使用FTP

[复制链接]
发表于 2013-9-6 17:51:50 | 显示全部楼层 |阅读模式
#获取文件列表
  1. $listFTP = [system.net.ftpwebrequest] [system.net.webrequest]::create("ftpurl")
  2. $listFTP.Credentials = New-Object System.Net.NetworkCredential("username","password")
  3. $listFTP.Method=[system.net.WebRequestMethods+ftp]::listdirectorydetails
  4. $response = $listFTP.getresponse()
  5. $stream = New-Object System.Io.StreamReader($response.getresponsestream(),[System.Text.Encoding]::UTF8)
  6. while(-not $stream.EndOfStream){
  7.     $stream.ReadLine()
  8. }
  9. $stream.Close()
  10. $response.Close()
复制代码
#上传文件
  1. #ftpurl:ftp路径
  2. #username:ftp用户名
  3. #password:ftp密码
  4. #localfilename:要上传的文件名
  5. $fileinf=New-Object System.Io.FileInfo("localfilename")
  6. $upFTP = [system.net.ftpwebrequest] [system.net.webrequest]::create("ftpurl"+$fileinf.name)
  7. $upFTP.Credentials = New-Object System.Net.NetworkCredential("username","password")
  8. $upFTP.Method=[system.net.WebRequestMethods+ftp]::UploadFile
  9. $upFTP.KeepAlive=$false
  10. $sourceStream = New-Object System.Io.StreamReader($fileInf.fullname)
  11. $fileContents = [System.Text.Encoding]::UTF8.GetBytes($sourceStream.ReadToEnd())
  12. $sourceStream.Close();
  13. $upFTP.ContentLength = $fileContents.Length;
  14. $requestStream = $upFTP.GetRequestStream();
  15. $requestStream.Write($fileContents, 0, $fileContents.Length);
  16. $requestStream.Close();
  17. $response =$upFTP.GetResponse();
  18. $response.StatusDescription
  19. $response.Close();
复制代码
#下载文件
  1. $downFTP = [system.net.ftpwebrequest] [system.net.webrequest]::create("url"+"filename")
  2. $downFTP.Credentials = New-Object System.Net.NetworkCredential("username","password")
  3. $response = $downFTP.getresponse()
  4. $stream=$response.getresponsestream()
  5. $buffer = new-object System.Byte[] 2048
  6. $outputStream=New-Object System.Io.FileStream("patch"+"filename","Create")
  7. while(($readCount = $stream.Read($buffer, 0, 1024)) -gt 0){
  8.     $outputStream.Write($buffer, 0, $readCount)
  9. }
  10. $outputStream.Close()

  11. $stream.Close()
  12. $response.Close()
复制代码
http://hi.baidu.com/shrekzz/item/07007b2b8cd15d8fae48f5fc

评分

参与人数 1PB +2 收起 理由
PowerShell + 2 感谢分享

查看全部评分

发表于 2013-9-6 18:25:52 | 显示全部楼层
本帖最后由 PowerShell 于 2013-9-6 21:09 编辑

1 此贴只应天上有,人间哪的几回闻?
2 此贴作者乃牛人,吾敬仰之.隐藏的powershell牛人很多的。
3 此贴是powershell调用.net语法之精华.应看10遍以上.完美的教学用的代码。
4 此ftp功能,完全是.net的面向对象语法.用的是属性和方法。而不是给某个ftp客户端软件,如xxftp.exe传字符,传值。也不是传一个值,然后sleep半秒那种。
5 powershell的ftp库,还有nsoftware公司的net cmdlets v4 ,里面网络库太多,不光是ftp.免费命令的介绍(和下载)在这里 http://www.netcmdlets.com/overview/netcmdlets/
6 群友也补充个 http://gallery.technet.microsoft ... FTP-Client-db6fe0cb
发表于 2013-11-30 07:03:12 | 显示全部楼层
支持楼主的帖子。!!!!!!!!!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 01:44 , Processed in 0.024984 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表