我想使用PowerShell传输文件到一个匿名的FTP服务器。我不会使用任何额外的包。多么?
发布于 2009-12-09 01:03:46
我不确定你是否能100%防止脚本挂起或崩溃,因为有些事情是你无法控制的(如果服务器在上传过程中断电了怎么办?)-但这应该会为你的入门提供一个坚实的基础:
# create the FtpWebRequest and configure it
$ftp = [System.Net.FtpWebRequest]::Create("ftp://localhost/me.png")
$ftp = [System.Net.FtpWebRequest]$ftp
$ftp.Method = [System.Net.WebRequestMethods+Ftp]::UploadFile
$ftp.Credentials = new-object System.Net.NetworkCredential("anonymous","anonymous@localhost")
$ftp.UseBinary = $true
$ftp.UsePassive = $true
# read in the file to upload as a byte array
$content = [System.IO.File]::ReadAllBytes("C:\me.png")
$ftp.ContentLength = $content.Length
# get the request stream, and write the bytes into it
$rs = $ftp.GetRequestStream()
$rs.Write($content, 0, $content.Length)
# be sure to clean up after ourselves
$rs.Close()
$rs.Dispose()
发布于 2010-03-21 10:47:28
还有一些其他的方法。我使用了以下脚本:
$File = "D:\Dev\somefilename.zip";
$ftp = "ftp://username:password@example.com/pub/incoming/somefilename.zip";
Write-Host -Object "ftp url: $ftp";
$webclient = New-Object -TypeName System.Net.WebClient;
$uri = New-Object -TypeName System.Uri -ArgumentList $ftp;
Write-Host -Object "Uploading $File...";
$webclient.UploadFile($uri, $File);
您可以使用以下命令针对windows FTP命令行实用程序运行脚本
ftp -s:script.txt
(查看this article)
关于SO的以下问题也回答了这个问题:How to script FTP upload and download?
发布于 2011-12-29 04:13:22
我不会说这比投票最高的solution...but更优雅这是很酷的(至少在我看来是这样的):
$server = "ftp.lolcats.com"
$filelist = "file1.txt file2.txt"
"open $server
user $user $password
binary
cd $dir
" +
($filelist.split(' ') | %{ "put ""$_""`n" }) | ftp -i -in
正如你所看到的,它使用的是小的内置windows FTP客户端。更简短,更直截了当。是的,我真的用过了,而且很管用!
https://stackoverflow.com/questions/1867385
复制相似问题