elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [BATCH] Duda sobre recursividad en directorio y permisos de usuarios
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [BATCH] Duda sobre recursividad en directorio y permisos de usuarios  (Leído 3,214 veces)
Aeros

Desconectado Desconectado

Mensajes: 199


Ver Perfil
[BATCH] Duda sobre recursividad en directorio y permisos de usuarios
« en: 3 Marzo 2015, 20:49 pm »

Hola que tal!

Tengo un problema con la creación de subdirectorios masivos, tengo una lista de 4000 carpetas en las cuales por cada uno tengo que crear subdirectorios iguales para todas y establecer permisos de usuarios diferentes por cada carpeta.

Crear subdirectorios lo hago de la siguiente manera:

Código
  1. for /d /r %i (*) Do  md a b
 

Pero de este modo el bucle nunca finaliza y me crea infinitos subdirectorios sobre el directorio donde estoy parado.  :(

Y quisiera saber tambien si dentro del mismo bucle ya le puedo establecer permisos con calcs a cada subdirectorio creado.

por ejemplo CON UN

Código
  1. cacls 1 /t /g certificacion:r  


lo cual quiero que herede los permisos a los subdirectorios.




Gracias y espero que me puedan ayudar!





En línea

Eleкtro
Ex-Staff
*
Conectado Conectado

Mensajes: 9.877



Ver Perfil
Re: [BATCH] Duda sobre recursividad en directorio y permisos de usuarios
« Respuesta #1 en: 4 Marzo 2015, 05:40 am »

La lista de directorios que itera el For /D /R se va actualizando por cada nuevo directorio que encuentra (es decir, por cada subdirectorio que creas) y resulta en una recursividad indeseada, debes utilizar otro tipo de búcle For /F o ForFiles.

El tema de la herencia de permisos para ser sinceros no lo tengo claro, pero si no recuerdo mal Windows trabaja esos aspectos de forma automatizada, tanto el propietario cómo los permisos de un sub-directorio se heredan por si solos al crear dicho sub-directorio sin necesidad de llevar a cabo asignaciones manuales, de todas formas si me estoy equivocando puedes asignarle los permisos que quieras a las carpetas creadas, claro está.

Código
  1. @Echo OFF
  2.  
  3. Set "folderName=Nueva Carpeta"
  4.  
  5. For /F "Tokens=* Delims=" %%# in ('Dir /B /S /AD "*"') Do (
  6. Echo %%~#
  7. Echo    [+] %%~#\%folderName%
  8. (MKDir "%%~#\%folderName%")2>NUL
  9. )
  10.  
  11. Pause&Exit /B 0

Saludos


« Última modificación: 4 Marzo 2015, 05:45 am por Eleкtro » En línea



Aeros

Desconectado Desconectado

Mensajes: 199


Ver Perfil
Re: [BATCH] Duda sobre recursividad en directorio y permisos de usuarios
« Respuesta #2 en: 5 Marzo 2015, 14:53 pm »

La lista de directorios que itera el For /D /R se va actualizando por cada nuevo directorio que encuentra (es decir, por cada subdirectorio que creas) y resulta en una recursividad indeseada, debes utilizar otro tipo de búcle For /F o ForFiles.

El tema de la herencia de permisos para ser sinceros no lo tengo claro, pero si no recuerdo mal Windows trabaja esos aspectos de forma automatizada, tanto el propietario cómo los permisos de un sub-directorio se heredan por si solos al crear dicho sub-directorio sin necesidad de llevar a cabo asignaciones manuales, de todas formas si me estoy equivocando puedes asignarle los permisos que quieras a las carpetas creadas, claro está.

Código
  1. @Echo OFF
  2.  
  3. Set "folderName=Nueva Carpeta"
  4.  
  5. For /F "Tokens=* Delims=" %%# in ('Dir /B /S /AD "*"') Do (
  6. Echo %%~#
  7. Echo    [+] %%~#\%folderName%
  8. (MKDir "%%~#\%folderName%")2>NUL
  9. )
  10.  
  11. Pause&Exit /B 0

Saludos

Me encanto tu code! lo modifique para que me cree 113 variables, osea 113 rutas diferentes en 4000 capetas pero se me cuelga la pc...

Entonces pense si se podia hacer esto, pero se repite el bucle muchas veces y me crea infinitas carpetas.


Código
  1. @Echo OFF
  2.  
  3. For /F "Tokens=* Delims=" %%# in ('Dir /B /S /AD "*" ') Do (
  4. xcopy c:\cape_copi "%%#" /e
  5. )
  6. Pause&Exit /B 0


En c:\cape_copi estan todos los subdirectorios que quiero copiar, pero se me va copiando a la vez en cada una de las carpetas!


Saludos!
En línea

Aeros

Desconectado Desconectado

Mensajes: 199


Ver Perfil
Re: [BATCH] Duda sobre recursividad en directorio y permisos de usuarios
« Respuesta #3 en: 5 Marzo 2015, 16:00 pm »

Me encanto tu code! lo modifique para que me cree 113 variables, osea 113 rutas diferentes en 4000 capetas pero se me cuelga la pc...

Entonces pense si se podia hacer esto, pero se repite el bucle muchas veces y me crea infinitas carpetas.


Código
  1. @Echo OFF
  2.  
  3. For /F "Tokens=* Delims=" %%# in ('Dir /B /S /AD "*" ') Do (
  4. xcopy c:\cape_copi "%%~#" /e
  5. )
  6. Pause&Exit /B 0


En c:\cape_copi estan todos los subdirectorios que quiero copiar, pero se me va copiando a la vez en cada una de las carpetas!


Saludos!

Me faltaba la virgulilla en esta linea :)
xcopy c:\cape_copi "%%~#" /e

Gracias nuevamente!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda de principiante sobre recursividad
Programación C/C++
bananakatana 2 3,092 Último mensaje 13 Diciembre 2010, 04:04 am
por negux
[BATCH][Duda]Permisos de carpetas compartidas
Scripting
Segadorfelix 2 3,780 Último mensaje 2 Diciembre 2012, 21:37 pm
por Segadorfelix
[Bash] cambiar permisos en directorio parent
Scripting
xkiz ™ 0 1,948 Último mensaje 8 Agosto 2014, 19:19 pm
por xkiz ™
[Bash] cambiar permisos en directorio parent
GNU/Linux
xkiz ™ 1 2,017 Último mensaje 15 Agosto 2014, 06:01 am
por JorgeEMX
Intranet PHP+MySQL. Duda con los permisos de usuarios
PHP
Antonio_1987 5 4,664 Último mensaje 3 Mayo 2015, 22:31 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines