4

我有一个小脚本来读取我的 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

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


我的两个问题是:

  1. 为什么 shell 无法访问 PATH?我认为它会
    复制环境(所以只有设置环境变量会有问题)?
  2. 以我可以将其添加到调度程序的方式读取 PATH 的最佳方法是什么?
4

1 回答 1

3

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

cmd /c C:\path\to\lua myfile.lua
于 2013-04-30T14:59:12.847 回答