CMD - copy - xcopy - robocopy

Alien_crrpt

Estoy intentando crear un fichero .cmd y cuando quiero copiar un archivo con una ruta relativa de origen a otra ruta absoluta de destino no me crea al fichero.
Ej:
xcopy "DatosPC.cmd" "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\DatosPC.cmd"
Con rutas absolutas si funciona. Pero lo necesito la ruta de origen en ruta relativa.
Un saludo.

LLoskka

XD xcopy es para directorios

la sintaxis es basicamente asi

copy DatosPC.cmd C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\DatosPC.cmd

e importante tener permisos de administrador elevado ejecutando cmd bajo windows ( que ya no es un msdos eh )

1 respuesta
Alien_crrpt

#2 Con rutas absolutas funciona, tanto si lo ejecutas como administrador como si no.

nerkaid

¿Con qué usuario lo ejecutas? ¿Con qué permisos? Probablemente al incluir la ruta relativa el terminal que lo ejecute no esté en la misma ruta, añade un CD delante para posicionarlo.

Por ejemplo

cd C:\tmp\script\
xcopy "DatosPC.cmd" "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\DatosPC.cmd"

BruJo

#1 Crea un .cmd y dentro metes esta linea:

xcopy "%d0DatosPC.cmd" "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp"

Mientras tengas en el mismo directorio el DatosPC.cmd que el cmd que ejecuta esta orden ya lo tienes.

Edit: entre el % y el d0 va un ~ que no aparece.

1 respuesta
AikonCWD

Opino como nerkaid. Primero en el BAT posicionate en la carpeta donde está ese fichero, usando cd. Si no el xcopy lo intentará buscar desde el path original que hay al ejecutar el bat.

Alien_crrpt

Me doy cuenta que si lo ejecuto normal con ruta relativa:
Aparece la venta na de CMD ejecutándose desde la dirección de la carpeta donde esta el archivo. Y me dice acceso denegado.
Pero si lo ejecuto en modo administrador se ejecuta desde c:\windows\system32 dando un error y cerrándose el símbolo de sistema si se usan rutas relativas.
¿Hay alguna orden para que en el archivo bat o cmd cambie la ruta de ejecución desde la carpeta actual, cuando lo ejecuto en modo administrador ?

#5 Lo he probado y no funciona.

Alien_crrpt

Resuelto a sido una mezcla de @BruJo , @nerkaid y seguir buscando.

cd %d0%p0
Esto me posiciona en el directorio donde se ejecuta el bat - cmd
y despues pongo lo siguiente:
xcopy "Datos111.cmd" "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp"

Muchas gracias.

https://www.lawebdelprogramador.com/foros/Ms-Dos/1224133-Obtener-ruta-desde-donde-ejecuto-un-bat.html

Usuarios habituales

  • Alien_crrpt
  • AikonCWD
  • BruJo
  • nerkaid
  • LLoskka