Lua io.popen() - 在 Windows 上访问共享驱动器
Lua io.popen() - Accessing Shared Drive on Windows
我正在 运行在 Windows 10 机器上安装 Lua 程序。这台 Windows 10 计算机与另一台 Windows 10 计算机联网,这台计算机与我的计算机共享其 D: 驱动器。共享盘在我的电脑上叫做O:盘。
当我在计算机上打开 cmd window 并键入:
type "O:\Data\config\file.xml"
我在命令 window 中得到了 file.xml 的内容。但是,如果我 运行 通过 Lua:
同样的命令
f = io.popen([["type O:\Data\config\file.xml"]])
output = f:read("*l")
然后 output
returns 为 nil
.
此行为适用于任何涉及共享 O: 驱动器的命令,而不仅仅是 type
。同样,我有一些引用 O: 驱动器的 bat 脚本,我使用 os.execute
调用它们,但它们无法完成它们的任务(我可以看到它们实际上正在执行,只是不正确)。但是,如果我 运行 使用本地 D: 或 C: 驱动器执行类似的命令或脚本,则不会出现此问题。
关于这两个调用之间的不同之处有什么想法吗?我可以用不同的方式调用 O: 驱动器吗?
我的 Lua 应用程序 运行ning 作为服务,我确定当它 运行ning 作为服务时它 运行ning 作为 'guest'用户,而不是我的系统用户。因此,它没有 运行.
的适当权限
我将 Windows 服务修改为 运行 作为我的特定用户,这解决了问题。
我正在 运行在 Windows 10 机器上安装 Lua 程序。这台 Windows 10 计算机与另一台 Windows 10 计算机联网,这台计算机与我的计算机共享其 D: 驱动器。共享盘在我的电脑上叫做O:盘。
当我在计算机上打开 cmd window 并键入:
type "O:\Data\config\file.xml"
我在命令 window 中得到了 file.xml 的内容。但是,如果我 运行 通过 Lua:
同样的命令f = io.popen([["type O:\Data\config\file.xml"]])
output = f:read("*l")
然后 output
returns 为 nil
.
此行为适用于任何涉及共享 O: 驱动器的命令,而不仅仅是 type
。同样,我有一些引用 O: 驱动器的 bat 脚本,我使用 os.execute
调用它们,但它们无法完成它们的任务(我可以看到它们实际上正在执行,只是不正确)。但是,如果我 运行 使用本地 D: 或 C: 驱动器执行类似的命令或脚本,则不会出现此问题。
关于这两个调用之间的不同之处有什么想法吗?我可以用不同的方式调用 O: 驱动器吗?
我的 Lua 应用程序 运行ning 作为服务,我确定当它 运行ning 作为服务时它 运行ning 作为 'guest'用户,而不是我的系统用户。因此,它没有 运行.
的适当权限我将 Windows 服务修改为 运行 作为我的特定用户,这解决了问题。