我需要使用变量从bat文件更改文件夹permisions(和包含的文件)..
类似的东西:
icacls "%dat%" /T /C /grant *S-1-1-0:(f)
但这似乎没有按预期工作.. %dat%变量工作正常,因为其余的bat适用于没有该文件夹权限问题的人,
我创建的bat文件开始
set root=%~dp0
ECHO DRAG YOUR T.O.P FOLDER HERE
ECHO the one With "textures" folder inside.
set /p top= Then press Enter
ECHO Drag your fallout 4 Data folder here
set /p dat= then press enter
ECHO Drag your Archive2 folder here
set /p arc= then press enter
goto :choice1
(那部分工作正常) 然后它会选择一些也可以正常工作的选择。
唯一的问题是有些人没有修改数据文件夹的权限。 bat文件需要创建文件夹,并在该文件夹中移动文件。
我认为我的问题是:
icacls "%dat%" /T /C /grant *S-1-1-0:(f)
是对数据文件夹内容的安置权限,而不是数据文件夹本身的权限。
值得注意的是,bat文件需要从数据文件夹内部运行以消除变量。因此,在移动它时,目录树中的一个文件夹可以允许我按原样使用它并消除他很少的问题。这无疑会给许多人带来更多问题。
现在看来,所有需要工作的东西都能正常工作,唯一的问题是我似乎无法在dat文件夹上设置文件夹权限。除非我也有,否则我真的不想添加额外的变量..
(我可以在初始序列中添加一个" set / p new ="部分,但我发誓我应该能够在没有它的情况下这样做。)
欢迎任何帮助。
我会在这里发布整个bat文件,但我不认为它是必需的。它只是一个重复的go to:命令列表,它们单独处理一个文件。
(将文件移动到创建的文件夹,将该文件解压缩到第二个创建的文件夹。将额外的文件添加到提取的文件中,将提取的文件重新压缩为与原始文件相同的文件名,将新文件移动到原始位置,删除2个工作文件夹,重新创建具有相同名称的2个工作文件夹,然后继续下一个文件)
所有这一切都很好。我相信你可以想象它是如何完成的。
- = =编辑 -
只是想知道我执行的icals是不是错了.. 这会不正常吗?
icacls "%dat%" /grant:r *S-1-1-0:f /T /C
还是我构建它的第一种方式?
答案 0 :(得分:0)
答案是:
icacls %dat% /grant:r *S-1-1-0:(OI)(CI)F /T /C
...
( %dat% ) being a variable directory address which was inputed earlier in the bat file.
/ grant:r需要没有:r它提供特殊权限而不是设置实际权限。 (我认为你需要/我这样做)
/t sets the permission from the variable to all subfolders and files.
F is Full permission. (for some reason it does not need a /
/c lets the thing continue running even if there were errors.
(OI) is Object inherit.
(CI) is container inherit.
and *S-1-1-0: is the user. (that is the ID for "everyone" that way it works on any language.
"每个人"非英语版本可能会失败"