[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[转载代码] PowerShell中使用FTP

#获取文件列表
  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
1

评分人数

支持楼主的帖子。!!!!!!!!!!!

TOP

本帖最后由 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
脚本是写给人看的,是写给用户看的,而不是写给机子看的
用户能看懂、会修改的脚本,才是好脚本。
写易懂的powershell脚本帮人解决问题,进而让用户学会自渔,吾所愿也

TOP

返回列表