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:
@echo off
copy y/ %0% "archivo2.bat"
copy y/ %0% "archivo3.bat"
El problema está ahora, en el comando MOVE :-\ :
move "¿?/archivo2.bat" "C:/"
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
La expresión ".\" indica el directorio de trabajo actual, por lo tanto solo tienes que reemplazar los síbolos "¿?" por ".\", es decir, esta ruta:
".\Archivo1.bat"
...O también puedes utilizar la variable dinámica "%CD%"
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:
@Echo OFF
Set "dirPaths=%UserProfile%\Desktop;%HomeDrive%"
Set "fileName=%~nx0"
For %%d in (%dirPaths%) Do (
Copy /Y "%~f0" "%%d\%fileName%"
)
Pause&Exit /B 0
Saludos
Cita de: Eleкtro 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:
".\Archivo1.bat"
...O también puedes utilizar la variable dinámica "%CD%"
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:
@Echo OFF
Set "dirPaths=%UserProfile%\Desktop;%HomeDrive%"
Set "fileName=%~nx0"
For %%d in (%dirPaths%) Do (
Copy /Y "%~f0" "%%d\%fileName%"
)
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
Cita de: NoSuBa en 22 Febrero 2015, 20:44 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...
Cita de: NoSuBa en 22 Febrero 2015, 20:44 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:
For /?
Saludos
Gracias a todos elektro y enjel lex :D
Cita de: engel lex en 22 Febrero 2015, 20:46 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