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" | ||
| + | } | ||
| } | } | ||