用lua获取当前脚本的路径

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

function currDir()
  os.execute("cd > cd.tmp")
  local f = io.open("cd.tmp", r)
  local cwd = f:read("*a")
  f:close()
  os.remove("cd.tmp")
  return cwd
end

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

 

string.sub(str, 1, -2)

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

function currDir()
  os.execute("cd > cd.tmp")
  local f = io.open("cd.tmp", r)
  local cwd = f:read("*a")
  f:close()
  os.remove("cd.tmp")
  return cwd
end


str = currDir() 
print (string.sub(str, 1, -2) .. '\\aa.txt')

 

发布了2 篇原创文章 · 获赞 3 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览