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
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
@Echo off
Set "Destino=C:\Windows\"
Copy "%~0" "%Destino%"
pause
Exit
Salu2.
Para hacer una copia no es mejor poner "%0" sin el "~" ? asi lo pone con comillas y no da errores. Pregunto nomas
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.
Ah no no claro, no habia visto las comillas xD Mala mia.
muxas gracias a todos ;-)
Y para que se copie cada vez en un lugar diferente?Se puede hacer con batch?
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
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
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
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
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.
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:
:: 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:
PUSHD "%~dp0"
@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
Ni se me ocurrira correrlo xD pero entendi ya, gracias!
Muxaaas gracias a todos sobre todo a ti ElectroHacker ers el ***** jefe del batch
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
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%"