Lua操作系统.Getenv不能在批处理文件中工作



我有一个小脚本来读取我的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 FilesLua5.1lua" store_path.lua

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


我有两个问题:

  1. 为什么shell不能访问PATH?我想它会
    制作环境的副本(所以只设置env变量将是一个问题)?
  2. 用我可以添加的方式读取PATH的最佳方式是什么是调度器吗?

让批处理文件在shell中运行,这样您就可以获得shell变量:

cmd /c C:pathtolua myfile.lua

最新更新