#.net #powershell #ftp #winscp #winscp-net
#.net #powershell #ftp #winscp #winscp-net
Вопрос:
У меня есть скрипт для загрузки файлов с моего компьютера на FTP. Но я хочу подсчитать, сколько файлов загружает мой скрипт. Я использую скрипт от WinSCP.
Add-Type -Path "WinSCPnet.dll"
$session = New-Object WinSCP.Session
try
{
# Connect
$session.DebugLogPath = "C:forKeppLogtransfer_data_script.log"
$session.Open($sessionOptions)
#Message
Write-Host -ForegroundColor Cyan "`r`nUploading files to $servername..."
Write-Host -ForegroundColor White "Do not close this window!"
$path = "/MyuploadfilesTOFtp/"
# Transfer files
$session.PutFiles("C:Myfileslocation*.*", $path "/*").Check()
}
finally
{
#Inform user
Write-Host -ForegroundColor Cyan "Files have been uploaded to $servername."
#Dispose of session
$session.Dispose()
}
Я могу видеть, какие файлы были загружены в мой файл журнала, но он не удобен для использования. Я хочу получить некоторую переменную для подсчитанного количества файлов, которые были загружены.
Я хочу сделать что-то вроде этого
Write-Host -ForegroundColor Cyan "Files have been uploaded to $servername. Uploaded file's number is $numberofiles."
Ответ №1:
Session.PutFiles
Возвращает TransferOperationResult
результат. У него есть Transfers
свойство с коллекцией передач.
$results = $session.PutFiles("C:Myfileslocation*.*", $path "/*")
$results.Check() # Throws if any transfer failed
$count = $results.Transfers.Count