Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: GN1000 en 22 Agosto 2007, 21:36 pm



Título: Código .bat para copiar carpetas
Publicado por: GN1000 en 22 Agosto 2007, 21:36 pm
Hay alguna forma de llevar un .bat en un pendrive con un código para que al ejecutarlo se copie una determinada carpeta del disco duro al pendrive?

Si es así, cuál es ese código? He estado buscando, pero no sé nada de programación y no termino de entender cómo funciona el comando COPY...

Muchas gracias,


Título: Re: Código .bat para copiar carpetas
Publicado por: Siuto en 23 Agosto 2007, 00:45 am
Poniendo "COPY /?" en la consola podes visualizar la ayuda del comando

Código:
Copia uno o m s archivos en otra ubicaci¢nci¢n.

COPY [/V] [/N] [/Y | /-Y] [/Z] [/A | /B ] origen [/A | /B]
     [+ origen [/A | /B] [+ ...]] [destino [/A | /B]]

  origen       Especifica el archivo o archivos que deben copiarse.
  /A           Indica un archivo de texto ASCII.
  /B           Indica un archivo binario.
  /D           Permite al archivo de destino que se cree descifrado
  Destino      Especifica el directorio y el nombre de archivo de los
               nuevos archivos.
  /V           Verifica que los nuevos archivos se escriben
               correctamente.
  /N           Si es posible, usa un nombre de archivo corto al copiar
               un archivo cuyo nombre no tiene el formato 8.3.
  /Y           Suprime la petici¢n de confirmaci¢n cuando se va a
               sobrescribir un archivo destino existente.
  /-Y          Realiza la petici¢n de confirmaci¢n cuando se va a
               sobrescribir un archivo destino existente.
  /Z           Copia archivos de red en modo reiniciable.

El modificador /Y puede estar preestablecido en la variable de entorno
COPYCMD. Esto puede anularse con el modificador /-Y en la l¡nea de
comando. Est  predeterminado el pedir la confirmaci¢n del usuario
antes de sobrescribir, excepto si el comando COPY se ejecuta desde un
archivo de comandos por lotes.

Para anexar archivos, especifique un £nico archivo de destino, pero
varios archivos de origen (usando caracteres comodines o el formato archivo1+archivo2+archivo3).

Proba de hacer el code y si no te sale postea el mismo con tu dudas.


Título: Re: Código .bat para copiar carpetas
Publicado por: GN1000 en 23 Agosto 2007, 10:12 am
Es que no tengo ni idea de por dónde empezar   :-[...

He probado esto, pero nada:

Código:
@echo off
COPY origen X:\prueba.txt destino X:\Carpeta\

También he probado añadiendo varias de las letras esas que me has dejado abajo, pero tampoco funciona.

Como variables para la letra del disco duro he probado "sysroot" y "rootdir", pero no funcionan...

Qué hago mal?? Cómo lo arreglo??  :huh:


Título: Re: Código .bat para copiar carpetas
Publicado por: GroK en 30 Agosto 2007, 01:22 am
Amigo HyphenSpider:

Te explico, "origen" y "destino" no debes escribirlos literalmente cuando ejecutes el comando, en ese lugar debes colocar la ruta de origen y destino directamente, separadas por un espacio. En tu codigo quedaria asi:

Código:
@echo off
COPY X:\prueba.txt X:\Carpeta

Si lo que quieres es copiar directamente carpetas, deberas usar el comando xcopy, de esta manera:

Código:
XCOPY X:\Carpeta_origen X:\Carpeta_destino /E

El modificador /E lo he puesto para especificar que deseo copiar directorios y subdirectorios, incluyendo los que estan vacios. Tambien podrias añadir /I para dar por hecho que queremos crear un subdirectorio si no existe (Si no lo pones te pregunta). Para mas detalles teclea xcopy /?.

En cuanto a lo de las variables de entorno, para obtener la letra del disco duro usa SystemDrive o HomeDrive, esas dos que has dicho no existen xD Para ver todas las variables de entorno registradas en tu sistema teclea set en tu consola.

Bueno y ahora un ejemplillo de todo esto. Suponiendo que quieres copiar la carpeta D:\Musikita a una carpeta del mismo nombre en el pendrive que esta en la letra de unidad G:, pos hacemos un bat que contenga:

Código
  1. @echo off
  2. XCOPY %SystemDrive%\Musikita G:\Musikita /E /I

Espero que te sirva ;) Saludos


Título: Re: Código .bat para copiar carpetas
Publicado por: GN1000 en 30 Agosto 2007, 14:26 pm
Sí que me sirve! Es exactamente lo que estaba buscando! Muchas gracias!  :D

Un par de preguntas más...

1. Cómo lo hago si quiero copiar TODO el disco duro? Es decir, todas las carpetas que hay en el disco, incluídas las carpetas del sistema. Puedo hacer esto?:

Código:
@echo off
XCOPY %SystemDrive%\ G:\Musikita /E /I
exit

2. Cuál es la variable que tengo que darle a mi llave USB, si no sé qué "letra" tiene asignada?

Gracias de nuevo!


Título: Re: Código .bat para copiar carpetas
Publicado por: Siuto en 30 Agosto 2007, 19:35 pm
1. Cómo lo hago si quiero copiar TODO el disco duro? Es decir, todas las carpetas que hay en el disco, incluídas las carpetas del sistema. Puedo hacer esto?:

Conoces el NortonGhost, me parece que te va a ser mejor para esto, creo que tambien se puede usar desde la consola aunqeu nunca lo hice.


2. Cuál es la variable que tengo que darle a mi llave USB, si no sé qué "letra" tiene asignada?

Para saber letra que se le asigno a tu pendrive en la PC que este conectado podrias hacer un archivo en el directorio raiz del mismo y con la variable %CD% te va a decir la letra que se le asigno, esto se debe a que la variable %CD% te dice donde te encontras en ese momento, si el archivo no esta en la raiz del pendrive para llegar a la misma tendrias que esar el comando CD \ con ese parametro.


Título: Re: Código .bat para copiar carpetas
Publicado por: GN1000 en 30 Agosto 2007, 20:56 pm
Verás... la idea de todo esto es que usuarios que no tienen ni idea de informática puedan simplemente ejecutar el archivo .bat y tener una copia entera de sus discos. Sin complicaciones.

Así pues... Es este código correcto?

Código:
@echo off
XCOPY %SystemDrive%\ G:\Musikita /E /I
exit

No hay forma de solucionar lo de la letra del pendrive para que la detecte automáticamente, no?

Muchas gracias una vez más!


Título: Re: Código .bat para copiar carpetas
Publicado por: kraszic en 31 Agosto 2007, 12:01 pm
Verás... la idea de todo esto es que usuarios que no tienen ni idea de informática puedan simplemente ejecutar el archivo .bat y tener una copia entera de sus discos. Sin complicaciones.

Así pues... Es este código correcto?

Código:
@echo off
XCOPY %SystemDrive%\ G:\Musikita /E /I
exit

No hay forma de solucionar lo de la letra del pendrive para que la detecte automáticamente, no?

Muchas gracias una vez más!
lo de q detecte la letra del pendrive no tengo ni idea, pero simplemente podrias hacer un batch para q los users pusieran manualmente la letra de su pendrive y no creo q fuera muy dificil aunq no sepan informatica (es mirarlo en mi pc):

Código:
@echo off
title Copia del disco duro
set /p letra=Introduce la letra de tu pendrive:
XCOPY %SystemDrive%\ %letra%:\Musikita /E /I
exit

Yo soy solo un nobato en batch, e empezado hace poco y no tengo ni idea si este codigo funcionara, tampoco lo he probado asi q pruebalo a ver si te va. Lo siento por no poder ayudar mas. A ver q dice GroK q es el q sabe.

saludos


Título: Re: Código .bat para copiar carpetas
Publicado por: jorspy en 4 Noviembre 2011, 20:07 pm
bravoooooooooooooooo!!!!!!


oye una pregunta:
como le hago para copiar subdirectorios supon que la info q quiero copiar esta aqui:

C:\Documents and Settings\Administrador\Mis documentos\Mi música
 ??????????
y alo intente con el codigo anterior pero no funca gracias y excelente aporte


Título: Re: Código .bat para copiar carpetas
Publicado por: Chocala en 5 Noviembre 2011, 13:40 pm
bravoooooooooooooooo!!!!!!


oye una pregunta:
como le hago para copiar subdirectorios supon que la info q quiero copiar esta aqui:

C:\Documents and Settings\Administrador\Mis documentos\Mi música
 ??????????
y alo intente con el codigo anterior pero no funca gracias y excelente aporte

No revivas post muertos, lo pone en las reglas.