Sample code for 30+ languages & platforms
Tcl

SCP Download Files Matching a Pattern, such as *.txt

See more SCP Examples

Demonstrates how to SCP download files matching a pattern, such as *.txt.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

set ssh [new_CkSsh]

# Connect to an SSH server:
set hostname "MY-SSH-SERVER-DOMAIN-OR-IP"
set port 22

set success [CkSsh_Connect $ssh $hostname $port]
if {$success != 1} then {
    puts [CkSsh_lastErrorText $ssh]
    delete_CkSsh $ssh
    exit
}

# Wait a max of 5 seconds when reading responses..
CkSsh_put_IdleTimeoutMs $ssh 5000

# Authenticate using login/password:
set success [CkSsh_AuthenticatePw $ssh "MY-SSH-LOGIN" "MY-SSH-PASSWORD"]
if {$success != 1} then {
    puts [CkSsh_lastErrorText $ssh]
    delete_CkSsh $ssh
    exit
}

# Once the SSH object is connected and authenticated, use it
# in the SCP object.
set scp [new_CkScp]

set success [CkScp_UseSsh $scp $ssh]
if {$success != 1} then {
    puts [CkScp_lastErrorText $scp]
    delete_CkSsh $ssh
    delete_CkScp $scp
    exit
}

CkScp_put_HeartbeatMs $scp 200

# Set the SyncMustMatch property to "*.pem" to download only .pem files
CkScp_put_SyncMustMatch $scp "*.pem"

set remoteDir "qa_syncA"
set localDir "c:/aaworkarea/scp/qa_syncA"

# Download synchronization modes:
# mode=0: Download all files
# mode=1: Download all files that do not exist on the local filesystem.
# mode=2: Download newer or non-existant files.
# mode=3: Download only newer files.  
#         If a file does not already exist on the local filesystem, it is not downloaded from the server.
# mode=5: Download only missing files or files with size differences.
# mode=6: Same as mode 5, but also download newer files.
set mode 0

# Do not recurse the remote directory tree.  Only download files matching *.pem
# from the given remote directory.
set bRecurse 0

set success [CkScp_SyncTreeDownload $scp $remoteDir $localDir $mode $bRecurse]
if {$success != 1} then {
    puts [CkScp_lastErrorText $scp]
    delete_CkSsh $ssh
    delete_CkScp $scp
    exit
}

puts "SCP download matching success."

# Disconnect
CkSsh_Disconnect $ssh

delete_CkSsh $ssh
delete_CkScp $scp