Post a reply

Options
Add an Attachment

If you do not want to add an Attachment to your Post, please leave the Fields blank.

(maximum 10 MB; please compress large files; only common media, archive, text and programming file formats are allowed)

Options

Topic review

gothbox

HAH!

Thank you so much!

Works like a charm :)
martin

You are not passing the $transferOptions to $session.PutFiles.

You should do:
$transferOptions.FileMask = "|e2b_0170*.xml","|e2b_0280*.xml","|e2b_0515*.xml"

$transferResult = $session.PutFiles($localPath, $remotePath, $False, $transferOptions)
gothbox

Hi.

changed the line, but still it copies all files in the folder.


It seems like it ignores the filemask option completely...

I've also tries to replace the line:
$transferOptions.FileMask = "|e2b_0170*.xml,e2b_0280*.xml,e2b_0515*.xml"
to :
$transferOptions.FileMask = "*<1d"

to have it only transfer files older then 24 hours, and still, all files are beeing transfered.

I'm new to powerhell myself. There are no errors, output says
"........\e2b_02282014020656623.xml succeeded, moving to backup"

I've prettymuch copypasted the script from https://winscp.net/eng/docs/script_local_move_after_successful_upload

Is there something preventing filemask optin to be read ?
martin

Re: Powershell script to upload files and exclude some

I'm no expert in PowerShell, but your string syntax for file mask seems wrong to me. And you definitely have too many "pipes" there. Try:
$transferOptions.FileMask = "|e2b_0170*.xml,e2b_0280*.xml,e2b_0515*.xml"
gothbox

It transfers all files and moves them after sucsess.

Why wont it exclude the files named e2b_0170* , e2b_0280* , e2b_0515* ?

I've used the same exclusion when calling a script file from winscp.com and it does the job correct, but it doesnt move the files after, so i had to make a powershell script.
gothbox

Powershell script to upload files and exclude some

Hi.

Im trying to upload all files exepc some files based on its name.

Ive made this script, and it does quite well, except the exclusion...


try
{
# Load WinSCP .NET assembly
[Reflection.Assembly]::LoadFrom("WinSCPnet.dll") | Out-Null

# Setup session options
$SessionOptions.DisableVersionCheck
$sessionOptions = New-Object WinSCP.SessionOptions
$sessionOptions.Protocol = [WinSCP.Protocol]::ftp
$sessionOptions.HostName = "localhost"
$sessionOptions.UserName = "ftp1"
$sessionOptions.Password = "ftp1"
# $sessionOptions.SshHostKeyFingerprint = "ssh-rsa 1024 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"

$session = New-Object WinSCP.Session

try
{
# Connect
$session.Open($sessionOptions)

$localPath = "\\10.0.0.105\asdf\*"
$remotePath = "/asdf/efh/"
$backupPath = "\\10.0.0.105\asdf\ok\"

# Upload files, collect results
#$TransferOptions()
$transferOptions = New-Object WinSCP.TransferOptions
$transferOptions.FileMask = "|e2b_0170*.xml","|e2b_0280*.xml","|e2b_0515*.xml"
$transferResult = $session.PutFiles($localPath, $remotePath)

# Iterate over every transfer
foreach ($transfer in $transferResult.Transfers)
{
# Success or error?
if ($transfer.Error -eq $Null)
{
Write-Host ("Upload of {0} succeeded, moving to backup" -f
$transfer.FileName)
# Upload succeeded, move source file to backup
Move-Item $transfer.FileName $backupPath
}
else
{
Write-Host ("Upload of {0} failed: {1}" -f
$transfer.FileName, $transfer.Error.Message)
}
}
}
finally
{
# Disconnect, clean up
$session.Dispose()
}

exit 0
}
catch [Exception]
{
Write-Host $_.Exception.Message
exit 1
}




Can anyone help me ?