我正在读取并修改位于Windows程序文件文件夹中的文件中的一些数据。因此,该文件没有写权限。因此,当我试图给它写信时,我收到了一个错误。
当手动为包含文件的文件夹授予写权限时,脚本将工作。
是否可以修改Lua脚本中的文件夹权限,或者不管文件的权限如何,都可以写入文件?或者只能从文件资源管理器手动执行吗?
这是我当前正在重写inputFile的代码部分:
k=0
updatefile = io.open(inputFile,"w")
for k=1,i do
updatefile:write(modfilecontent[k] .. '\n') --This is where I'm blocked by permissions
end
updatefile:close()
另外,如果有一个可能的解决方案,并且我将这个脚本加载到另一个没有管理权限的人的计算机上,那么解决方案仍然有效吗?
编辑:小猪的解决方案将使用os.execute方法来更改特权。只要插件正在使用的软件在第一次设置权限时就作为管理员运行。从那时起,您不再需要作为管理员运行。
下面是我需要添加到程序开头的代码,当然减去括号。
os.execute('icacls "C:\\Program Files\\[software name]\\[folder name]" /grant Everyone:(OI)(CI)F /T')
发布于 2021-12-20 16:40:42
您可以使用os.execute运行适当的Windows命令。
请参阅如何在Windows中使用命令行向用户授予目录的权限?
或者使用一个库来支持这样的东西。也许结帐
https://keplerproject.github.io/luafilesystem/manual.html
另外,如果有一个可能的解决方案,并且我将这个脚本加载到另一个没有管理权限的人的计算机上,那么解决方案仍然有效吗?
因为那个人不能以管理员的身份运行Lua,这是非常不可能的。这将完全违背不同用户级别的目的。
https://stackoverflow.com/questions/70424862
复制相似问题