Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Saito_25 en 7 Febrero 2018, 23:33 pm



Título: Copiar carpeta a través de cmd, me está resultando imposible ?_?
Publicado por: Saito_25 en 7 Febrero 2018, 23:33 pm
Pues me han mandado en clase usar diferentes comandos de la cmd para irme acostumbrando a ella. No tengo problema en nada, exceptuando una cosa, que me está volviendo loco...

Quiero copiar la carpeta C:\Users\Mi usuario\Cal destino C:\Users\Mi usuario\Documents.

Me exigen que use el comando xcopy... El comando, creo sería este:

xcopy C:\Users\mi usuario\C C:\Users\mi usuario\Documents /e

(Mi usuario lo cambio por mi nombre de usuario, no lo dejo así).

La cosa es que me copia al directorio lo que hay dentro de C y no C en sí misma...

(La carpeta se llama C, así venía en el ejercicio).

¿Alguien me puede ayudar?

Gracias.


Título: Re: Copiar carpeta a través de cmd, me está resultando imposible ?_?
Publicado por: Eleкtro en 7 Febrero 2018, 23:46 pm
¿Alguien me puede ayudar?

Si el código real se parece al que has mostrado, entonces para solucionarlo simplemente debes encerrar entre comillas dobles los argumentos que tengan espacios en blanco. Toma el siguiente ejemplo de sintaxis como guía:
Código
  1. XCopy.exe /E "C:\Users\mi usuario\C\*" "C:\Users\mi usuario\Documents\"
( conde 'C:\Users\mi usuario' lo podrías simplificar, reemplazándolo por la variable de entorno %USERPROFILE%. )

Esto que te he dicho de las comillas dobles es un conocimiento básico esencial, me refiero, es algo que se debe conocer sí o sí en la programación. Creo que deberías pedirle a tu profesor que te explique sobre el concepto de lo que es un argumento, como se delimitan, y las comillas dobles, para que se usan, como se usan, y cuando se usan.

Saludos!


Título: Re: Copiar carpeta a través de cmd, me está resultando imposible ?_?
Publicado por: Saito_25 en 7 Febrero 2018, 23:53 pm
¡Muchas gracias!

Se lo pregunté... Y me dijo que lo investigaría, que no recordaba cómo se hacía XDDDDDDDDDDDD.


Título: Re: Copiar carpeta a través de cmd, me está resultando imposible ?_?
Publicado por: Saito_25 en 7 Febrero 2018, 23:57 pm
Edito para añadir información:

No la ruta real es:

xcopy C C:\Users\Manuel\Documents /e

Eso solo me copia lo que hay dentro de C, pero yo necesito copiar la carpeta C y lo que haya dentro, no solo lo que haya dentro.

Aclaro que la carpeta C no es el directorio principal C:, sino una carpeta normal, dentro de mi usuario, que nombré así porque la actividad lo pedía.

A ver si me podéis echar una manita, estoy amargado ya.

Gracias.


Título: Re: Copiar carpeta a través de cmd, me está resultando imposible ?_?
Publicado por: Eleкtro en 8 Febrero 2018, 00:10 am
Aclaro que la carpeta C no es el directorio principal C:, sino una carpeta normal, dentro de mi usuario, que nombré así porque la actividad lo pedía.

A ver si me podéis echar una manita, estoy amargado ya.

Pues... ya te expliqué como hacerlo:

Código
  1. XCopy.exe /E "%USERPROFILE%\C\*" "%USERPROFILE%\Documents\"



Se lo pregunté... Y me dijo que lo investigaría, que no recordaba cómo se hacía XDDDDDDDDDDDD.

Pues vaya un profesor que pone ejercicios para realizar sobre un entorno que ni él mismo domina a nivel usuario, y encima exigiendo que se hagan de cierta manera...

...lamentablemente se que suele ser algo habitual que hayan profesores así, y mientras tanto, otras personas que serán más merecedoras de tener su puesto, estarán en paro.

Aquí te dejo algo de info (info general, e info enfocada a Batch), si la quieres:

  • Parameters and arguments | Wikipedia (https://en.wikipedia.org/wiki/Parameter_(computer_programming)#Parameters_and_arguments)
  • Command Line arguments (Parameters) | ss64.com (https://ss64.com/nt/syntax-args.html)
  • Escape Characters, Delimiters and Quotes | ss64.com (https://ss64.com/nt/syntax-esc.html)

saludos!


Título: Re: Copiar carpeta a través de cmd, me está resultando imposible ?_?
Publicado por: Saito_25 en 8 Febrero 2018, 08:31 am
Hola, electro, no sé si es que no lo estoy haciendo bien, pero ese comando que me has puesto ahí no me funciona.

Verás, cuando lo pongo, me dice que se han movido 0 archivos.

Yo necesito mover la carpeta raíz y sus carpetas de dentro, no solo las de dentro. Se me ha ocurrido que puedo hacerlo así:

xcopy 1 3\1 /e/t

Es decir, cópiame todo lo que haya dentro de la carpeta "1" dentro de la carpeta "3", creándome dentro de ella una nueva carpeta llamada "1".

Ahora mismo es la mejor forma que tengo que de hacerlo. Si alguien me puede decir una mejor, se lo agradecería.

Muchas gracias por la ayuda =).