【问题标题】:Delete files on FTP site using Webclient and powershell使用 Webclient 和 powershell 删除 FTP 站点上的文件
【发布时间】:2016-09-09 14:42:28
【问题描述】:

我在 Stackoverflow 上找到了这段代码,用于使用 Powershell 从 FTP 站点获取文件。 效果很好,然后我唯一想做的就是在下载文件后从 FPT 站点删除文件。 是否可以轻松修改此脚本来做到这一点? 谢谢

  #FTP Server Information - SET VARIABLES
$ftp = "ftp://XXX.com/" 
$user = 'UserName' 
$pass = 'Password'
$folder = 'FTP_Folder'
$target = "C:\Folder\Folder1\"

#SET CREDENTIALS
$credentials = new-object System.Net.NetworkCredential($user, $pass)

function Get-FtpDir ($url,$credentials) {
    $request = [Net.WebRequest]::Create($url)
    $request.Method = [System.Net.WebRequestMethods+FTP]::ListDirectory
    if ($credentials) { $request.Credentials = $credentials }
    $response = $request.GetResponse()
    $reader = New-Object IO.StreamReader $response.GetResponseStream() 
    $reader.ReadToEnd()
    $reader.Close()
    $response.Close()
}

#SET FOLDER PATH
$folderPath= $ftp + "/" + $folder + "/"

$Allfiles=Get-FTPDir -url $folderPath -credentials $credentials
$files = ($Allfiles -split "`r`n")

$files 

$webclient = New-Object System.Net.WebClient 
$webclient.Credentials = New-Object System.Net.NetworkCredential($user,$pass) 
$counter = 0
foreach ($file in ($files | where {$_ -like "*.txt"})){
    $source=$folderPath + $file  
    $destination = $target + $file 
    $webclient.DownloadFile($source, $target+$file)

    #PRINT FILE NAME AND COUNTER
    $counter++
    $counter
    $source
}

【问题讨论】:

  • 是的,有。但这不是代码编写服务。我们修复(也许)你写的东西,而不是为你写的。

标签: powershell ftp webclient


【解决方案1】:

我创建了一个新函数来在获取每个文件后进行删除

function Del-File($url,$credentials) {
    $request2 = [Net.WebRequest]::Create($url)
    $request2.Method = [System.Net.WebRequestMethods+FTP]::DeleteFile
    if ($credentials) { $request2.Credentials = $credentials }
    $response2 = $request2.GetResponse()
}

【讨论】:

  • 不错的兑换! +1
【解决方案2】:

正如其他人所说,这不是代码编写服务,但这里有一个提示。你的方法是[System.Net.WebRequestMethods+FTP]::ListDirectory。在这里查看其他可用的方法:https://msdn.microsoft.com/en-us/library/system.net.webrequestmethods.ftp(v=vs.110).aspx

【讨论】:

  • 谢谢安德烈,这正是我所需要的。
  • 然后接受答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-09
  • 1970-01-01
  • 1970-01-01
  • 2018-09-15
  • 2013-08-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多