Differences
This shows you the differences between the selected revisions of the page.
library_example_zip_and_upload 2020-06-23 | library_example_zip_and_upload 2024-05-27 (current) | ||
Line 12: | Line 12: | ||
<code> | <code> | ||
- | powershell.exe -File "ZipUpload.ps1" -sessionUrl "sftp://username:password@example.com/" -remotePath "/remote/path" -archiveName "archive.zip" file1.dat file2.dat | + | powershell.exe -File "ZipUpload.ps1" -sessionUrl "sftp://username:password;fingerprint=ssh-rsa-xxxxxxxxxxx...@example.com/" -remotePath "/remote/path" -archiveName "archive.zip" file1.dat file2.dat |
</code> | </code> | ||
- | For opposite functionality, use extension [[extension_archive_and_download|Archive remote files to ZIP archive, download it, and optionally extract it]]. | + | For opposite functionality, use extension [[extension_archive_and_download|*]]. |
<code powershell - ZipUpload.ps1> | <code powershell - ZipUpload.ps1> | ||
# @name &ZIP and Upload... | # @name &ZIP and Upload... | ||
# @command powershell.exe -ExecutionPolicy Bypass -File "%EXTENSION_PATH%" ^ | # @command powershell.exe -ExecutionPolicy Bypass -File "%EXTENSION_PATH%" ^ | ||
- | # -sessionUrl "!E" -remotePath "!/" -archiveName "%ArchiveName%" -pause ^ | + | # -sessionUrl "!E" -remotePath "!/" -archiveName "%ArchiveName%" ^ |
- | # -sessionLogPath "%SessionLogPath%" %Use7zip% -path7zip "%Path7zip%" ^ | + | # -refresh -pause -sessionLogPath "%SessionLogPath%" ^ |
- | # -archive7zip %Archive7zip% !& | + | # %Use7zip% -path7zip "%Path7zip%" -archive7zip %Archive7zip% !& |
# @description Packs the selected files to a ZIP archive and uploads it | # @description Packs the selected files to a ZIP archive and uploads it | ||
# @flag ApplyToDirectories | # @flag ApplyToDirectories | ||
- | # @version 7 | + | # @version 10 |
# @homepage ~~SELF~~ | # @homepage ~~SELF~~ | ||
# @require WinSCP 5.16 | # @require WinSCP 5.16 | ||
Line 42: | Line 42: | ||
param ( | param ( | ||
# Use Generate Session URL function to obtain a value for -sessionUrl parameter. | # Use Generate Session URL function to obtain a value for -sessionUrl parameter. | ||
- | $sessionUrl = "sftp://user:mypassword;fingerprint=ssh-rsa-xxxxxxxxxxx...=@example.com/", | + | $sessionUrl = "sftp://user:mypassword;fingerprint=ssh-rsa-xxxxxxxxxxx...@example.com/", |
[Parameter(Mandatory = $True)] | [Parameter(Mandatory = $True)] | ||
$remotePath, | $remotePath, | ||
[Switch] | [Switch] | ||
$pause, | $pause, | ||
+ | [Switch] | ||
+ | $refresh, | ||
[Switch] | [Switch] | ||
$use7Zip, | $use7Zip, | ||
Line 110: | Line 112: | ||
{ | { | ||
$parentPath = Split-Path -Parent (Resolve-Path $localPath) | $parentPath = Split-Path -Parent (Resolve-Path $localPath) | ||
+ | if ($parentPath[-1] -ne "\") | ||
+ | { | ||
+ | $parentPath += "\"; | ||
+ | } | ||
if (Test-Path $localPath -PathType Leaf) | if (Test-Path $localPath -PathType Leaf) | ||
Line 124: | Line 130: | ||
foreach ($file in $files) | foreach ($file in $files) | ||
{ | { | ||
- | $entryName = $file.Replace(($parentPath + "\"), "") | + | $entryName = $file.Replace($parentPath, "") |
Write-Host "Adding $entryName..." | Write-Host "Adding $entryName..." | ||
[System.IO.Compression.ZipFileExtensions]::CreateEntryFromFile( | [System.IO.Compression.ZipFileExtensions]::CreateEntryFromFile( | ||
Line 153: | Line 159: | ||
$session.Open($sessionOptions) | $session.Open($sessionOptions) | ||
- | $session.PutFileToDirectory($archivePath, $remotePath) | + | $session.PutFileToDirectory($archivePath, $remotePath) | Out-Null |
Write-Host "Archive $archiveName uploaded." | Write-Host "Archive $archiveName uploaded." | ||
- | & "$env:WINSCP_PATH\WinSCP.exe" "$sessionUrl" /refresh "$remotePath" | + | # Refresh the remote directory in WinSCP GUI, if -refresh switch was used |
+ | if ($refresh) | ||
+ | { | ||
+ | Write-Host "Reloading remote directory..." | ||
+ | ············& "$env:WINSCP_PATH\WinSCP.exe" "$sessionUrl" /refresh "$remotePath" | ||
+ | } | ||
} | } | ||
finally | finally |