Lua os.getenv不能在批处理文件中工作

时间:2013-04-30 14:43:25

标签: lua environment-variables

我有一个小脚本来读取我的PATH并存储在一个文件中,我想安排每天运行。

path = os.getenv("PATH")
file_name = "C:\\temp.txt" 
file = io.open(file_name, "w")
file:write(path)
file:close()

如果我从命令行运行它可以工作,但是当我创建批处理文件(我在Windows XP上工作)并双击它时 - os.getenv(“PATH”)返回false。批处理文件:

"C:\Program Files\Lua\5.1\lua" store_path.lua

我在评论中读到this question它“不是一个过程环境变量,它是由shell提供的,所以它不起作用”。事实上,其他一些env变量(如用户名)工作正常。


我有两个问题:

  1. 为什么shell无法访问PATH?我以为会这样 制作一份环境副本(所以只设置env变量会有问题)?
  2. 以我可以添加的方式读取PATH的最佳方法是什么         它是一个调度程序?

1 个答案:

答案 0 :(得分:3)

让批处理文件从shell运行它,以便获得shell变量:

cmd /c C:\path\to\lua myfile.lua