![icacls 批处理文件多个目录带有通配符帮助需要](https://linux22.com/image/1326516/icacls%20%E6%89%B9%E5%A4%84%E7%90%86%E6%96%87%E4%BB%B6%E5%A4%9A%E4%B8%AA%E7%9B%AE%E5%BD%95%E5%B8%A6%E6%9C%89%E9%80%9A%E9%85%8D%E7%AC%A6%E5%B8%AE%E5%8A%A9%E9%9C%80%E8%A6%81.png)
我编写了以下批处理文件,它可以很好地梳理以数字 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) 系统上可以正常工作。