用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')

 

你可能感兴趣的:(用lua获取当前脚本的路径)