Inicialmente solo estaba usando copy
pero obtuve este resultado:
C:\repos\AutomatedBuildTesting (master -> origin)
(2020-09-18 8:49:01.12) λ copy ".hooks/*" ".git/hooks/*"
commit-msg
The system cannot find the file specified.
0 file(s) copied.
Así que lo intenté xcopy
y, después de probar algunas cosas, finalmente descubrí que solo se copiará si incluyo la F
bandera para mostrar los nombres completos de los archivos. ¿Alguien puede explicar esto?
C:\repos\AutomatedBuildTesting (master -> origin)
(2020-09-18 8:48:32.95) λ xcopy ".hooks/*" ".git/hooks/*"
0 File(s) copied
C:\repos\AutomatedBuildTesting (master -> origin)
(2020-09-18 8:48:58.07) λ xcopy ".hooks/*" ".git/hooks/*" /F
Overwrite C:\repos\AutomatedBuildTesting\.git\hooks\commit-msg (Yes/No/All)? y
C:\repos\AutomatedBuildTesting\.hooks\commit-msg -> C:\repos\AutomatedBuildTesting\.git\hooks\commit-msg
1 File(s) copied
Respuesta1
Escribes tus rutas con /
en lugar de \
. Si los cambia, \
debería funcionar. No puedo decirte exactamente por qué funciona con /f y no sin él, pero sé por experiencia que las rutas escritas como /
en lugar de \
se tratan de manera diferente.
Supongo que cuando se incluye un parámetro, cmd puede determinar que /
es parte de una ruta, no un parámetro, y como tal trata el comando correctamente.