PowerShell: 如何使用PowerShell操作FTP?

本文详述如何使用PowerShell的PSFTP模块进行FTP文件管理,包括连接FTP、上传下载文件、新建删除目录、重命名文件等操作。通过实例演示各个功能的使用方法,为FTP自动化管理提供便利。
摘要由CSDN通过智能技术生成

目录

1. 前言

2. 遇见PSFTP

3. 初探PSFTP

4. 连接FTP

5. 使用PSFTP进行文件管理

5.1 添加/上传文件 - Add-FTPItem (Send-FTPItem)

 使用举例:

5.2 获取目录下面的文件、子目录 - Get-FTPChildItem

使用举例:

5.3 下载文件 - Get-FTPItem(Receive-FTPItem)

使用举例:

5.4 获取文件大小 - Get-FTPItemSize

使用举例:

5.5 新建目录 - New-FTPItem

使用举例:

5.6 删除文件 - Remove-FTPItem

使用举例:

 5.7 重命名文件或者目录 - Rename-FTPItem(Move-FTPItem)

使用举例: 

5.8 检查文件或者目录是否存在 - Test-FTPItem

使用举例:

6. 总结


1. 前言

之前在【Azure - App Service】如何使用PowerShell一键部署前端代码到微软Azure云的App Service上_码农杰克的博客-CSDN博客

中提到在之前尝试部署前端代码到Azure云上时,曾尝试过使用FTP来操作。但是很不幸没有成功,不过倒是对PowerShell如何操作FTP搞明白了。 所以接下来对PowerShell操作FTP作一番记录,以备后用。

2. 遇见PSFTP

其实PowerShell本身并没了内置对FTP的支持,但是.net里面内置了FTP操作的类。当时在微软官方文档上看到了下面一段示例代码,主要就是演示如何通过PowerShell上传前端代码到Azure 的APP Service 上。PowerShell: Upload files using FTP - Azure App Service | Microsoft DocsLearn how to use Azure PowerShell to automate deployment and management of App Service. This sample shows how to upload files to an app using FTP.https://docs.microsoft.com/en-us/azure/app-service/scripts/powershell-deploy-ftp

$filePath="<Replace with full file path>"
$webappname="mywebapp$(Get-Random)"
$location="West Europe"

# Create a resource group.
New-AzResourceGroup -Name myResourceGroup -Location $location

# Create an App Service plan in `Free` tier.
New-AzAppServicePlan -Name $webappname -Location $location `
-ResourceGroupName myResourceGroup -Tier Free

# Create a web app.
New-AzWebApp -Name $webappname -Location $location -AppServicePlan $webappname `
-ResourceGroupName myResourceGroup

# Get publishing profile for the web app
$xml = [xml](Get-AzWebAppPublishingProfile -Name $webappname `
-ResourceGroupName myResourceGroup `
-OutputFile null)

# Extract connection information from publishing profile
$username = $xml.SelectNodes("//publishProfile[@publishMethod=`"FTP`"]/@userName").value
$password = $xml.SelectNodes("//publishProfile[@publishMethod=`"FTP`"]/@userPWD").value
$url = $xml.SelectNodes("//publishProfile[@publishMethod=`"FTP`"]/@publishUrl").value

# Upload file 
$file = Get-Item -Path $filePath
$uri = New-Object System.Uri("$url/$($file.Name)")

$request = [System.Net.FtpWebRequest]([System.net.WebRequest]::Create($uri))
$request.Method = [System.Net.WebRequestMethods+Ftp]::UploadFile
$request.Credentials = New-Object System.Net.NetworkCredential($username,$password)

# Enable SSL for FTPS. Should be $false if FTP.
$request.EnableSsl = $true;

# Write the file to the request object.
$fileBytes = [System.IO.File]::ReadAllBytes($filePath)
$request.ContentLength = $fileBytes.Length;
$requestStream = $request.GetRequestStream()

try {
    $requestStream.Write($fileBytes, 0, $fileBytes.Length)
}
finally {
    $requestStream.Dispose()
}

Write-Host "Uploading to $($uri.AbsoluteUri)"

try {
    $response = [System.Net.FtpWebResponse]($request.GetResponse())
    Write-Host "Status: $($response.StatusDescription)"
}
finally {
    if ($null -ne $response) {
        $response.Close()
    }
}

这段代码只是C#与PowerShell的混合编程,因为PowerShell本身支持内嵌C#代码,并且在PowerShell中可以直接使用C#库。其中就有一个[System.Net.FtpWebRequest],这个就是.net里内置的FTP操作类。感兴趣的同学请参考下面的连接。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: Wget 是一种允许用户从互联网上获取文件的命令行程序,可以通过 Powershell使用它。要使用 Powershell wget,可以在 Powershell使用 Invoke-WebRequest 命令来下载文件,例如:Invoke-WebRequest -Uri <URL> -OutFile <文件名> ### 回答2: Powershell中的wget命令是用来从指定的URL下载文件的。它可以用于各种不同的情况和用途,以下是一些使用案例: 1. 下载文件:使用wget命令可以轻松地从任意URL下载文件。只需提供文件的URL和保存文件的路径,该命令将自动从URL下载文件并保存到指定的路径。 2. 批量下载文件:wget还可以用于批量下载文件,例如从某个网站下载一系列的图片或文档。可以使用循环结构配合wget命令,逐个下载文件并保存到指定位置。 3. 下载并覆盖文件:在某些情况下,可能需要重复下载同一个文件并覆盖已存在的版本。wget命令可以使用"-O"选项来指定文件的保存路径和文件名,以确保每次下载时都会覆盖该文件。 4. 限速下载:有时候需要限制下载速度,以确保不会占用过多网络带宽。wget命令提供了"--limit-rate"选项,可以设置下载速度的上限,使下载过程更加稳定。 5. 下载镜像网站:wget命令还支持下载整个网站的功能,这在需要备份网站内容时非常有用。使用"-r"选项可以递归下载整个网站,并将其保存到本地。 总之,Powershell的wget命令是一种强大的工具,可以帮助用户实现各种下载需求。无论是简单的文件下载还是复杂的网站镜像,都可以通过wget命令轻松完成。 ### 回答3: Powershell的wget是一个命令行工具,用于在Windows操作系统中下载文件。它支持HTTP、HTTPS和FTP等协议,并且具有很多实用的功能。 以下是一些Powershell wget的使用案例: 1. 下载文件:使用wget命令下载文件非常简单。例如,要下载一个文件,可以使用以下命令: wget https://example.com/file.txt 这将从指定的URL下载file.txt文件并保存在当前目录下。 2. 下载多个文件:wget还支持同时下载多个文件。例如,要下载多个文件,可以使用以下命令: wget https://example.com/file1.txt, https://example.com/file2.txt 这将同时从指定的URL下载file1.txt和file2.txt文件并保存在当前目录下。 3. 断点续传:wget还支持断点续传功能,即在下载过程中中断后可以从断点继续下载。例如,要使用断点续传下载文件,可以使用以下命令: wget -c https://example.com/largefile.zip 这将从指定的URL下载largefile.zip文件,并在中断后从上次下载的位置继续下载。 4. 下载到指定目录:除了默认下载到当前目录下,wget还支持将文件下载到指定的目录中。例如,要将文件下载到指定目录,可以使用以下命令: wget -P C:\Downloads https://example.com/file.txt 这将从指定的URL下载file.txt文件,并保存在C:\Downloads目录下。 5. 遍历下载:wget还支持递归下载,即可以下载整个网站的所有文件。例如,要递归下载整个网站,可以使用以下命令: wget -r https://example.com 这将从指定的URL下载该网站的所有文件,并保存在当前目录下的相应目录结构中。 总结起来,Powershell的wget命令在Windows操作系统中提供了一个简单而强大的工具,用于下载文件。无论是下载单个文件,多个文件,还是递归下载整个网站,都可以通过wget命令轻松实现。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT大厨

技术人,都不易,谢谢大大赏赐

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值