При выводе списка файлов с ftp-сервера он продолжает работать в каталоге ././././ - PullRequest
0 голосов
/ 17 мая 2019

При попытке удалить файлы с ftp-сервера, используя приведенный выше скрипт, он зацикливается на поиске ./././././ каталогов, которые не существуют. Есть ли какая-либо ошибка в скрипте или это ошибка в psftpd? Может кто-нибудь помочь мне с этой проблемой? Вот циклические строки, скопированные с консоли powershell:

VERBOSE: Performing the operation "Remove item from ftp location" on target "ftp:/domain.com/.cagefs". 
VERBOSE: Use original path: domain.com/.cagefs 
VERBOSE: Remove additonal slash: domain.com/.cagefs 
VERBOSE: Path is directory 
VERBOSE: Use WebRequestMethods: LIST 
VERBOSE: Use original path: domain.com/.cagefs. 
VERBOSE: Remove additonal slash: domain.com/.cagefs. 
VERBOSE: Path is directory 
VERBOSE: Use WebRequestMethods: LIST 
VERBOSE: Use original path: domain.com/.cagefs/.. 
VERBOSE: Remove additonal slash: domain.com/.cagefs/.. 

Код:

`Import-Module PSFTP`
`$FTPServer = 'domain.com'`
`$FTPUsername = 'username'`
`$FTPPassword = 'password'`
`$FTPSecurePassword = ConvertTo-SecureString -String $FTPPassword  -asPlainText -Force`
`$FTPCredential = New-Object      System.Management.Automation.PSCredential($FTPUsername,$FTPSecurePassword)`

`Set-FTPConnection -Credentials $FTPCredential -Server $FTPServer -Session MySession -UsePassive`

`$Session = Get-FTPConnection -Session MySession`

`$output = Get-FTPChildItem   -Session $Session  -Path '/'   | Select ModifiedDate, Name |  Where-Object {($_.ModifiedDate -lt (Get-Date).AddDays(-7))}|select name `

`echo $output`

foreach ( $file in $output ) {
    Remove-FTPItem  $file.name -Recurse -Session $Session -Verbose
}
...