icacls 批处理文件多个目录带有通配符帮助需要

icacls 批处理文件多个目录带有通配符帮助需要

我编写了以下批处理文件,它可以很好地梳理以数字 3 开头的所有文件夹并将文件夹权限应用于任何 2010 子文件夹。批处理文件的示例如下:

对于 (D:\Data\3*) 中的 /D %%f,执行 icacls "%%f\2010" /inheritance:r /grant:r "域管理员":(OI)(CI)F

问题:我如何改进此脚本以允许我将权限应用于以 3 开头的文件夹中的任意文件夹下的指定文件夹?

下面是我的失败尝试的一个例子:

对于 (D:\Data\3*) 中的 /D %%f,执行 icacls "%%f*\specificfolder" /inheritance:r /grant:r "Domain Admins":(OI)(CI)F

答案1

具有以下目录树:

数据

31245 客户端

任意文件夹

特定文件夹

31246 客户端

任意文件夹

特定文件夹

下面的代码将把您指定的安全权限应用于名为“specificfolder”的两个目录

@echo off
for /D %%f in ("D:\Data\3*") do for /D %%d in ("%%f\*") do icacls "%%d\specificfolder" /inheritance:r /grant:r "Domain Admins":(OI)(CI)F

注意 - 这使用了 DOS (COMMAND.COM) 不支持的嵌套 FOR 循环。这在 NT (CMD.EXE) 系统上可以正常工作。

相关内容