【发布时间】:2017-10-01 11:52:22
【问题描述】:
我有一个将文件上传到 FTP 服务器的脚本,我有一个服务器列表 IP $FTPServer 和文件目录上传 \Upload。它使用PSFTP module。
这是我读取文件$item并上传到IP$line的代码:
foreach ($line in $FTPServer)
{
foreach ($item in (Get-ChildItem .\Upload))
{
Start-Transcript -Path $results
Write-Host -Object "ftp url: $line"
Set-FTPConnection -Credentials $FTPCredential -Server $line -Session MySession -UsePassive
$Session = Get-FTPConnection -Session MySession
Write-Host -Object "Uploading $item..."
Add-FTPItem -Session $Session -Path $FTPPlace -LocalPath .\Upload\$item -Confirm:$false
Stop-Transcript
}
}
问题是,有时并非所有文件都可以上传,或者某个服务器已关闭。因此需要保存上传的结果。我想到了类似 table 的东西,它将存储在 logs.txt 中,看起来像这样:
我在考虑哈希表:
$array = $line, $item, $array[2], $array[3]
$FailTable=New-Object -TypeName PSObject -Property ([ordered]@{"FTP Server"=$array[0]; "File"=$array[1];"Connected"=$array[2];"Uploaded"=$array[3]})
$FailTable|Out-File '.\stats.txt'
但我不知道如何将连接状态和上传到$array[2] 和$array[3]
我会很高兴有任何帮助。
【问题讨论】:
标签: powershell ftp