Se necesita ayuda para el archivo por lotes icacls en varios directorios con comodines

Se necesita ayuda para el archivo por lotes icacls en varios directorios con comodines

He escrito el siguiente archivo por lotes que hace un gran trabajo al revisar todas las carpetas comenzando con el número 3 y aplicar permisos de carpeta a cualquier subcarpeta de 2010. A continuación se muestra un ejemplo de archivos por lotes:

para /D %%f en (D:\Data\3*) haga icacls "%%f\2010" /inheritance:r /grant:r "Domain Admins":(OI)(CI)F

Pregunta: ¿Cómo puedo mejorar este script para permitirme aplicar los permisos a una carpeta específica debajo de CUALQUIER carpeta dentro de las carpetas que comienzan con 3?

Aquí hay un ejemplo de mi intento fallido:

para /D %%f en (D:\Data\3*) haga icacls "%%f*\specificfolder" /inheritance:r /grant:r "Domain Admins":(OI)(CI)F

Respuesta1

Con el siguiente árbol de directorios:

D

Datos

31245 Cliente

cualquier carpeta

carpeta especifica

31246 Cliente

cualquier carpeta

carpeta especifica

El siguiente código aplicará los permisos de seguridad que especificó a ambos directorios llamados "carpeta específica".

@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

NOTA: esto utiliza bucles FOR anidados que no son compatibles con DOS (COMMAND.COM). Esto funcionará bien con un sistema NT (CMD.EXE).

información relacionada