Lua在批处理中调用os.getenv为何无效?
- 内容介绍
- 文章标签
- 相关推荐
本文共计304个文字,预计阅读时间需要2分钟。
我编写了一个小脚本,用于读取我的PATH环境变量并将其存储在一个文件中。每天运行一次。代码如下:
pythonpath=os.getenv(PATH)file_name=C:\\temp.txtwith open(file_name, w) as file: file.write(path)
如果从命令行运行它,它可以工作。
我有一个小脚本来读取我的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变量(如用户名)工作正常.
我有两个问题:
>为什么shell无法访问PATH?我以为会的
制作环境的副本(所以只设置env变量会有问题)?
>以我可以添加的方式读取PATH的最佳方法是什么
它给调度程序?
cmd /c C:\path\to\lua myfile.lua
本文共计304个文字,预计阅读时间需要2分钟。
我编写了一个小脚本,用于读取我的PATH环境变量并将其存储在一个文件中。每天运行一次。代码如下:
pythonpath=os.getenv(PATH)file_name=C:\\temp.txtwith open(file_name, w) as file: file.write(path)
如果从命令行运行它,它可以工作。
我有一个小脚本来读取我的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变量(如用户名)工作正常.
我有两个问题:
>为什么shell无法访问PATH?我以为会的
制作环境的副本(所以只设置env变量会有问题)?
>以我可以添加的方式读取PATH的最佳方法是什么
它给调度程序?
cmd /c C:\path\to\lua myfile.lua

