华融天泽高投:【原创】不用非官方插件,教你如何分离路径和文件名, 提供给新手学习!

来源:百度文库 编辑:偶看新闻 时间:2024/05/02 19:30:17

[分享脚本] 【原创】不用非官方插件,教你如何分离路径和文件名, 提供给新手学习!

本帖最后由 we似曾相识 于 2011-2-25 23:20 编辑

【附:小精灵自我删除的另一套方案】
今天在论坛搜索分离路径和文件名的资料居然没有查到。
有人推荐用黑马插件, 还不错的插件。能不能不用非
官方插件实现路径与文件名的分离呢,答案是肯定的。
思考后, 我找到了两条思路来实现路径和文件名分离。
得到完整路径的语句如下:

  1. // 定义变量
  2. dim Hwnd,path
  3. // 得到处于最前端程序的窗口句柄
  4. Plugin Hwnd = Window.Foreground()
  5. // path 是该程序的 路径+文件名
  6. Plugin path = Window.GetExePath(Hwnd)
  7. MessageBox "程序的 路径+文件名 是:" & path
复制代码 我们要做的结果必须清楚是从path中分离出文件名和路径
//=====================<思路一分割线>======================
思路一
    将得到的路径+文件名分割成数组元素。
    例如得到的路径是 C:\A\B\D.exe
      那么我们只要将"\"分隔开的部分当成数组元素

group(0)="C:"
group(1)="A"
group(2)="B"
group(3)="D.exe"
那么我们要的路径, 即
(下一行写法不规范, 仅为让你理解其含义)
group(0)加"\"加group(1)加"\"加group(2)加"\"加group(3)加"\"文件名, 即
group(4)
思路一用到的函数 join() , spilt() , UBound() , LBound()
//=====================<思路二分割线>======================
思路二
    思路二比思路一更容易让新手接受, 尤其对于对数组重定义不太了解的朋友。
和思路一的前面部分类似, 将路径+文件名看成数组分割后 该数组的最后一个元素就是文件名字。
得到的路径+文件名的字符串长度存入变量x
得到的文件名的字符串长度存入变量y
那么x-y就是路径的字符串长度, 没有问题吧
再用Left()函数分离出路径。
思路二也很清晰吧。it‘s  easy!
//=====================<思路解析结束>======================
源码
  1. UserVar Var1=DropList{思路一:0|思路二:1}=0 分离方式
  2. // 定义变量
  3. dim name,file_name,i,path
  4. //加这个提示为了得到小精灵的路径
  5. MessageBox 开始程序
  6. Plugin Hwnd = Window.Foreground()
  7. // path 是当前小精灵的路径
  8. Plugin path = Window.GetExePath(Hwnd)
  9. MessageBox "得到的[路径+文件名]为:" & path
  10. name = split(path,"\")
  11. // file_name 是小精灵名/小精灵进程名
  12. file_name = name(ubound(name))
  13. MessageBox "分离出的[文件名]为:" & file_name
  14. If Var1 = 0
  15.     //【分离路径,方案一】
  16.     //思路:将完整路径path分割成数组,数组中最后一个元素即程序名,除去最后一个元素,将数组其他元素重组join()即得到了程序纯路径(无程序名)
  17.     //定义数组b(),注意数组和变量不能同时定义例如:Dim x,b(3)这样的写法是错的
  18.     Dim b()
  19.     //注意,声明数组或者重新声明数组时,括号中的数值均为最大下标,由于数组下标从0开始,因此实际数量为  最大下标+1
  20.     //重定义数组b(),数组b()括号中不可以是变量,所以需要重定义数组。
  21.     Redim b(0)
  22.     i=0
  23.     //LBound是数组最小下标,UBound是数组最大下标
  24.     For ubound(name)
  25.         //使用"Preserve"时,重新声明会调整数组最后维的大小并保留剩余数组的内容
  26.         //一维数组中,当重新声明的下标大于原数组最大下标的时候,保留数组原有内容,并增大数组
  27.         If name(i)>ubound(name)
  28.             Redim Preserve b(i)
  29.         EndIf
  30.         b(i)=name(i)
  31.         i=i+1
  32.     EndFor
  33.     Dim path_0,path_1
  34.     path_1 = join(b,"\")
  35.     //path_0是路径
  36.     path_0 = path_1 & "\"
  37.     MessageBox "分离出的[路径]为:" & path_0
  38.     EndScript
  39. Else
  40.     //【分离路径,方案二】
  41.     //思路:(路径+文件名)的字符串长度减去(文件名)的字符串长度,再使用Left()函数实现分离纯路径
  42.     Dim path_0,x,y
  43.     //定义变量x,y
  44.     // x 是 路径+文件名 的字符串长度
  45.     x=len(path)
  46.     // y 是 文件名 的字符串长度
  47.     y=len(file_name)
  48.     // x-y 是 路径的字符串长度
  49.     path_0=Left(path,x-y)
  50.     MessageBox "分离出的[路径]为:" & path_0
  51.     EndScript
  52. EndIf
复制代码
//---------------------------------------------------
学会分离路径后, 小精灵自我删除就没必要再要求小精灵名字必须是什么了吧。
下面分享下沉8 按键结合批处理实现小精灵自我删除的又一套方案)
//---------------------------------------------------
按键结合VBS教你如何实现小精灵自我删除