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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Programar en Batch
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programar en Batch  (Leído 2,071 veces)
NoSuBa

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Programar en Batch
« en: 22 Febrero 2015, 20:19 pm »

Quiero crear un .bat que se autocopie en varias direcciones.  ;D

La idea es que ejecute el archivo, se copie a si mismo dos veces y mande una de esas copias a el disco C:/ y otra al escritorio. Esto es lo que llevo hecho:

Código
  1. @echo off
  2. copy y/ %0% "archivo2.bat"
  3. copy y/ %0% "archivo3.bat"
  4.  
El problema está ahora, en el comando MOVE  :-\ :

Código
  1. move "¿?/archivo2.bat" "C:/"
  2. move "¿?/archivo3.bat" "%userprofile%/desktop"

Que pongo en lugar de "¿?", la ubicación de los archivos copiables será variable, dependiendo de en que carpeta esté el original (ya que los copia en la misma dirección). NECESITO AYUDA, ya lo he probado todo.   >:(

POR FAVOR déjenme el COMANDO y bien explicado su FUNCIONAMIENTO, GRACIAS :)

Mod: Tema movido, usa etiquetas GeSHi


« Última modificación: 22 Febrero 2015, 20:27 pm por engel lex » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.810



Ver Perfil
Re: Programar en Batch
« Respuesta #1 en: 22 Febrero 2015, 20:40 pm »

La expresión ".\" indica el directorio de trabajo actual, por lo tanto solo tienes que reemplazar los síbolos "¿?" por ".\", es decir, esta ruta:
Código:
".\Archivo1.bat"

...O también puedes utilizar la variable dinámica "%CD%"
Código:
Echo "%CD%\Archivo1.bat"

Pero déjame decirte que la mecánica del código que has expuesto no es del todo correcta ya que puedes saltarte el paso de mover, copiando directamente a los directorios destino:
Código
  1. @Echo OFF
  2.  
  3. Set "dirPaths=%UserProfile%\Desktop;%HomeDrive%"
  4. Set "fileName=%~nx0"
  5.  
  6. For %%d in (%dirPaths%) Do (
  7.    Copy /Y "%~f0" "%%d\%fileName%"
  8. )
  9.  
  10. Pause&Exit /B 0

Saludos


« Última modificación: 22 Febrero 2015, 20:45 pm por Eleкtro » En línea

NoSuBa

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Programar en Batch
« Respuesta #2 en: 22 Febrero 2015, 20:44 pm »

La expresión ".\" indica el directorio de trabajo actual, por lo tanto solo tienes que reemplazar los síbolos "¿?" por ".\", es decir, esta ruta:
Código:
".\Archivo1.bat"

...O también puedes utilizar la variable dinámica "%CD%"
Código:
Echo "%CD%\Archivo1.bat"

Pero déjame decirte que la mecánica del código que has expuesto no es del todo correcta ya que puedes saltarte el paso de mover, copiando directamente a los directorios destino:
Código
  1. @Echo OFF
  2.  
  3. Set "dirPaths=%UserProfile%\Desktop;%HomeDrive%"
  4. Set "fileName=%~nx0"
  5.  
  6. For %%d in (%dirPaths%) Do (
  7.    Copy /Y "%~f0" "%%d\%fileName%"
  8. )
  9.  
  10. Pause&Exit /B 0

Gracias Elektro, me gustan los dos primeros comandos. El otro, seguramente funcionará mejor y todo eso, pero no entiendo lo que escribes ahí (los comandos), y prefiero saber lo que hace lo que programo. Muchas Gracias de todas fromas.  :D ;D ;D ;D
« Última modificación: 22 Febrero 2015, 20:46 pm por Eleкtro » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Programar en Batch
« Respuesta #3 en: 22 Febrero 2015, 20:46 pm »

Gracias Elektro, me gustan los dos primeros comandos. El otro, seguramente funcionará mejor y todo eso, pero no entiendo lo que escribes ahí (los comandos), y prefiero saber lo que hace lo que programo. Muchas Gracias de todas fromas.  :D ;D ;D ;D

tienes google e incluso si haces click sobre el comando te manda a la pagina con la explicación...
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.810



Ver Perfil
Re: Programar en Batch
« Respuesta #4 en: 22 Febrero 2015, 20:53 pm »

Gracias Elektro, me gustan los dos primeros comandos. El otro, seguramente funcionará mejor y todo eso, pero no entiendo lo que escribes ahí (los comandos), y prefiero saber lo que hace lo que programo. Muchas Gracias de todas fromas.  :D ;D ;D ;D

Lo que hago es asignar una cadena delimitada por comas (CSV) que contiene las rutas de los directorios, podriamos decir que es una simulación de una especie de Array limitado, e itero los elementos con el For para copiar el archivo a cada directorio especificado en el ""Array"".
Si tienes muchos directorios entonces esa metodología te ahorraría mucha repetición de código en una herramienta limitada cómo es Batch.

Aparte de lo que te ha comentado el compañero @Engel Lex, también puedes mirar la documentación interna de la CMD.

En consola:
Código:
For /?

Saludos
En línea

NoSuBa

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Programar en Batch
« Respuesta #5 en: 22 Febrero 2015, 20:56 pm »

Gracias a todos elektro y enjel lex  :D
En línea

crisoof

Desconectado Desconectado

Mensajes: 48


Ver Perfil
Re: Programar en Batch
« Respuesta #6 en: 24 Febrero 2015, 13:38 pm »

tienes google e incluso si haces click sobre el comando te manda a la pagina con la explicación...

Gracias no sabia que podia hacer click en los comandos xDD, me ahorraste caleta de tiempo buscando los parametros del for xD ;-) ;-)
Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
aprender a programar en batch newbie « 1 2 »
Scripting
gamer12 15 9,659 Último mensaje 11 Mayo 2011, 18:20 pm
por SuperDraco
[BATCH] Programar un batch con comando at
Scripting
WaAYa HaCK 5 4,712 Último mensaje 14 Septiembre 2011, 19:12 pm
por WaAYa HaCK
Aconsejarme un tutorial para programar en batch
Scripting
etac 8 4,737 Último mensaje 25 Enero 2012, 17:16 pm
por MauroMasciar
[batch] programar tareas
Programación General
imlikeabird34 6 3,393 Último mensaje 17 Diciembre 2012, 23:03 pm
por imlikeabird34
[BATCH] programar tarea una vez al mes sin repeticion [RESUELTO]
Scripting
imlikeabird34 7 5,146 Último mensaje 21 Diciembre 2012, 03:45 am
por imlikeabird34
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines