用lua获取当前脚本的路径

来源:互联网 发布:牛散持仓查询软件 编辑:程序博客网 时间:2024/05/21 10:30

原理是:使用命令提示符的’cd‘命令获取当前的路径,然后写入一个tmp文件(cd.tmp)中,用lua来读取这个文件,最后删除

[plain] view plaincopyprint?
  1. function currDir()  
  2.   os.execute("cd > cd.tmp")  
  3.   local f = io.open("cd.tmp", r)  
  4.   local cwd = f:read("*a")  
  5.   f:close()  
  6.   os.remove("cd.tmp")  
  7.   return cwd  
  8. end  

这个函数的缺点是,本身的字符串附带了换行符(即使看不见), 所以使用string.sub(s,i,j)来分隔一下,原理是:无论路径有多长,最后两个字符是'\n',所以只需用从最后一位算起,提取从-2到1位置的字符即刻,即:

[plain] view plaincopyprint?
  1. string.sub(str, 1, -2)  

这样,就可以随意的链接本路径下的文件件了:

[plain] view plaincopyprint?
  1. function currDir()  
  2.   os.execute("cd > cd.tmp")  
  3.   local f = io.open("cd.tmp", r)  
  4.   local cwd = f:read("*a")  
  5.   f:close()  
  6.   os.remove("cd.tmp")  
  7.   return cwd  
  8. end  
  9.   
  10.   
  11. str = currDir()   
  12. print (string.sub(str, 1, -2) .. '\\aa.txt')  
0 0
原创粉丝点击