Differences

This shows you the differences between the selected revisions of the page.

library_example_advanced_rename 2023-01-11 library_example_advanced_rename 2023-01-11 (current)
Line 18: Line 18:
# @command      powershell.exe -ExecutionPolicy Bypass -File "%EXTENSION_PATH%" ^ # @command      powershell.exe -ExecutionPolicy Bypass -File "%EXTENSION_PATH%" ^
#                  -sessionUrl "!E" -remotePath "!/" -pattern "%Pattern%" ^ #                  -sessionUrl "!E" -remotePath "!/" -pattern "%Pattern%" ^
-#                  -replacement "%Replacement%" -pause -sessionLogPath "%SessionLogPath%" ^+#                  -replacement "%Replacement%" -refresh -pause -sessionLogPath "%SessionLogPath%" ^
#                  %PreviewMode% !& #                  %PreviewMode% !&
# @description  Renames remote files using a regular expression # @description  Renames remote files using a regular expression
# @flag        RemoteFiles # @flag        RemoteFiles
-# @version      6+# @version      7
# @homepage    ~~SELF~~ # @homepage    ~~SELF~~
-# @require      WinSCP 5.16+# @require      WinSCP 5.19
# @option      - -run group "Rename" # @option      - -run group "Rename"
# @option        Pattern -run textbox "Replace file name part matching this pattern:" # @option        Pattern -run textbox "Replace file name part matching this pattern:"
Line 45: Line 45:
    [Switch]     [Switch]
    $pause,     $pause,
 +    [Switch]
 +    $refresh,
    $sessionLogPath = $Null,     $sessionLogPath = $Null,
    [Switch]     [Switch]
Line 60: Line 62:
        {         {
            $newName = $file -replace $pattern, $replacement             $newName = $file -replace $pattern, $replacement
-            Write-Host "$file => $newName" +            if ($newName -eq $file)
-············if ($newName -ne $file)+
            {             {
 +                Write-Host "$file not changed"
 +            }
 +            else
 +            {
 +                Write-Host "$file => $newName"
                $anyChange = $True                 $anyChange = $True
            }             }
Line 119: Line 125:
            {             {
                $newName = $file -replace $pattern, $replacement                 $newName = $file -replace $pattern, $replacement
-                Write-Host "$file => $newName" +                if ($newName -eq $file) 
- +                { 
- ···············$fullName = [WinSCP.RemotePath]::Combine($remotePath, $file.replace("[", "[[]")+                    Write-Host "$file not changed" 
- ···············$fullNewName = [WinSCP.RemotePath]::Combine($remotePath, $newName+                } 
- ···············$session.MoveFile($fullName, $fullNewName)+                else 
 +                { 
 +····················Write-Host "$file => $newName" 
 + ···················$fileMask = [WinSCP.RemotePath]::EscapeFileMask($file
 + ···················$sourcePath = [WinSCP.RemotePath]::Combine($remotePath, $fileMask) 
 +····················$operationMask = [WinSCP.RemotePath]::EscapeOperationMask($newName
 + ···················$targetPath = [WinSCP.RemotePath]::Combine($remotePath, $operationMask
 + ···················$session.MoveFile($sourcePath, $targetPath) 
 +                }
            }             }
        }         }
Line 132: Line 146:
        }         }
-        & "$env:WINSCP_PATH\WinSCP.exe" "$sessionUrl" /refresh "$remotePath"+        if ($refresh) 
 +        { 
 +············& "$env:WINSCP_PATH\WinSCP.exe" "$sessionUrl" /refresh "$remotePath" 
 +        }
    }     }

Last modified: by martin