我正在嘗試上傳三個特定檔案,并獲得所有三個傳輸的反饋。使用下面的代碼我只能得到
\xxxxxxxxxxxxxxxxxxx\Customerlocations.txt 上傳成功
我知道它不是在會話中添加傳輸,而是每次都替換它。我只是不知道如何調整它,所以我在 $transferResult.Transfers 中獲得了 3 次轉賬。
有人可以指出我正確的方向嗎?
# Set up session options
$sessionOptions = New-WinSCPSessionOption -Protocol Ftp `
-FtpSecure Implicit `
-Credential xxxxxxxxxxxxxxxxxxx `
-HostName "xxxxxxxxxxxxxxxxxxx " `
-TlsHostCertificateFingerprint "xxxxxxxxxxxxxxxxxxx "
$session = New-Object WinSCP.Session
$session.ExecutablePath = "C:\xxxxxxxxxxxxxxxxxxx\WinSCP.exe"
try
{
# Connect
$session.Open($sessionOptions)
# Download files
$transferOptions = New-Object WinSCP.TransferOptions
$transferOptions.TransferMode = [WinSCP.TransferMode]::Binary
#$transferResult =
# $session.GetFiles("/ordersexport/*.txt", "\\xxxxxxxxxxxxxxxxxxx\Test\", $False, $transferOptions)
$transferResult =
$session.PutFiles("\\xxxxxxxxxxxxxxxxxxx\Orders.txt", "/Orders.txt", $False, $transferOptions)
$transferResult =
$session.PutFiles("\\xxxxxxxxxxxxxxxxxxx\Assortment.txt", "/Assortment.txt", $False, $transferOptions)
$transferResult =
$session.PutFiles("\\xxxxxxxxxxxxxxxxxxx\Customerlocations.txt", "/Customerlocations.txt", $False, $transferOptions)
# Throw on any error
$transferResult.Check()
# Print results
foreach ($transfer in $transferResult.Transfers)
{
Write-Host "Upload of $($transfer.FileName) succeeded"
}
# Disconnect, clean up
$session.Dispose()
}
finally
{
$session.Dispose()
}
uj5u.com熱心網友回復:
您必須分別檢查每個Session.PutFiles呼叫的結果。為避免重復代碼,您可以使用如下回圈:
$paths = @("...\Orders.txt", "...\Assortment.txt", "...\Customerlocations.txt")
foreach ($path in $paths)
{
$transferResult = $session.PutFiles($path, "/", $False, $transferOptions)
# Throw on any error
$transferResult.Check()
# Print results
foreach ($transfer in $transferResult.Transfers)
{
Write-Host "Upload of $($transfer.FileName) succeeded"
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/384903.html
