Get last directory path part
From NSIS Wiki
Jump to navigationJump to search
Author: Afrow UK (talk, contrib) |
Description
This script will get the last part of a string after a specified character. Useful to get file extensions, last file name or last directory part.
Usage
Push "C:\program files\geoffrey\files" Push "\" Call GetAfterChar Pop $R0
$R0 is now "files" Push "." instead of "\" to get a file extension or perhaps "/" for URL.
The return value is empty "" if the input char was not found.
The Function
Function GetAfterChar Exch $0 ; chop char Exch Exch $1 ; input string Push $2 Push $3 StrCpy $2 0 loop: IntOp $2 $2 - 1 StrCpy $3 $1 1 $2 StrCmp $3 "" 0 +3 StrCpy $0 "" Goto exit2 StrCmp $3 $0 exit1 Goto loop exit1: IntOp $2 $2 + 1 StrCpy $0 $1 "" $2 exit2: Pop $3 Pop $2 Pop $1 Exch $0 ; output FunctionEnd
Original written by KiCHiK (GetFileName) Modified for character input by me (GetAfterChar).
(I also wrote a similar script, but this one is better)
-Stu