当前位置: 首页 > 文档资料 > NSIS 用户手册 >

C.1 获取上级目录

优质
小牛编辑
167浏览
2023-12-01
 ; GetParent
 ; 输入,堆栈顶部  (例如 C:\Program Files\Poop)
 ; 输出,堆栈顶部 (替换,例如 C:\Program Files)
 ; 不改变其它变量值。
 ;
 ; 用法:
 ;   Push "C:\Program Files\Directory\Whatever"
 ;   Call GetParent
 ;   Pop $R0
 ;   ; 在这里 $R0 将等于"C:\Program Files\Directory"
 Function GetParent
   Exch $R0
   Push $R1
   Push $R2
   Push $R3
   StrCpy $R1 0
   StrLen $R2 $R0
   loop:
     IntOp $R1 $R1 + 1
     IntCmp $R1 $R2 get 0 get
     StrCpy $R3 $R0 1 -$R1
     StrCmp $R3 "\" get
     Goto loop
   get:
     StrCpy $R0 $R0 -$R1
     Pop $R3
     Pop $R2
     Pop $R1
     Exch $R0
 FunctionEnd