Título: [Batch] almacenar nombres de carpetas en variables (solucionado) Publicado por: corax en 17 Junio 2009, 16:49 pm buenas a todos
necesito hacer un fragmento de código en batch que busque los nombres de las carpetas (solo las carpetas, sin contar las subcarpetas), de la unidad que se le indique, y que almacene cada nombre en una variable para poder trabajar con ellas más adelante después de pasarme un buen rato intentando hacerlo sin éxito al final me he quedado sin ideas, ¿a alguien se le ocurre algo? :-\ Título: Re: [Batch] almacenar nombres de carpetas en variables Publicado por: Darioxhcx en 17 Junio 2009, 17:36 pm cd %homedrive%
for /d %%x in ( * ) do echo %%x fijate si asi te sirve do set %%x=%contador?% suerte un saludo Título: Re: [Batch] almacenar nombres de carpetas en variables Publicado por: corax en 17 Junio 2009, 18:11 pm sí, me ha sevido... en parte, gracias Dario :)
el código reconoce los nombres de las carpetas que están en "%homedrive%\", el problema viene cuando intento guardar cada nombre como una variable distinta para usarlas posteriormente en el código lo que puedo hacer con eso es almacenar los nombres en un archivo de texto y hacer un código que lea cada línea, pero me gustaría poder ahorrarme el paso intermedio, es decir, en vez de escribir los nombres de la carpeta en un archivo de texto, leer el archivo y asignar cada línea a una variable, me gustaría poder asignar directamente cada nombre a una variable, y ahí ya sí que no tengo ni idea de como hacerlo, que es el principal problema Título: Re: [Batch] almacenar nombres de carpetas en variables Publicado por: leogtz en 18 Junio 2009, 06:13 am A ver, suponiendo que estamos en la ruta:
Código: X:\documents and settings Y queremos almacenar las carpetas en variables por separado: Código Salida: Código: linea1=C:\Documents and Settings\Administrador Título: Re: [Batch] almacenar nombres de carpetas en variables Publicado por: corax en 18 Junio 2009, 15:21 pm Muchas gracias Leo :)
Solo me queda una duda, que seguro que es una tontería, pero no acabo de entender: este código muestra por pantalla al ejecutarse estas líneas de texto (en tu caso): Código:
Si yo quisiera por ejemplo cambiar de nombre la primera carpeta, o moverla, o quisiera hacerlo con la segunda... ¿cómo debería hacerlo? :-\ Es decir, ¿sería algo como ren "%homedrive%\documents and settings\%variable1% NuevoNombre"? Por otra parte, ¿qué debo hacer para que no se muestre por pantalla la información? Es un código para automatización de tareas, por lo que intento que el usuario solo tenga que interactuar con el bat en caso de estricta necesidad. Una vez más, gracias por tu tiempo. :) Título: Re: [Batch] almacenar nombres de carpetas en variables Publicado por: leogtz en 19 Junio 2009, 02:08 am Puedes acceder a las carpetas asi:
Código: !linea1! Código: %linea1% Puedes hacer lo que quieras con ellas, lo que harías normalmente con cualquier variable. Citar Por otra parte, ¿qué debo hacer para que no se muestre por pantalla la información? Es un código para automatización de tareas, por lo que intento que el usuario solo tenga que interactuar con el bat en caso de estricta necesidad. Para evitar que se visualice información, puedes redirigir la salida a NULL: Ejemplo: Código: C:\>taskkill -f -im notepad.exe Saludos. Título: Re: [Batch] almacenar nombres de carpetas en variables Publicado por: corax en 19 Junio 2009, 12:20 pm Muchísimas gracias, Leo :)
El código es justo lo que andaba buscando. En cuanto a lo de que no muestre información por pantalla, me refería a que no mostrase lo de linea1=C:\Documents and Settings\Administrador linea2=C:\Documents and Settings\All Users etc, pero ya he conseguido hacerlo :) Otra vez, muchas gracias! |