Eu estava inicialmente apenas usando copy
, mas recebi esta saída:
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.
Então, tentei xcopy
e, depois de tentar algumas coisas, acabei descobrindo que só copiaria se eu incluísse o F
sinalizador para exibir os nomes completos dos arquivos. Alguém pode explicar isso?
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
Você escreve seus caminhos com
/
em vez de\
. Se você alterá-los para\
isso, deve funcionar. Não sei dizer exatamente por que funciona com /f e não sem, mas sei por experiência que com caminhos escritos como/
em vez de serem\
tratados de maneira diferente.Estou assumindo que quando um parâmetro é incluído, o cmd é capaz de descobrir que
/
faz parte de um caminho, não de um parâmetro e, como tal, trata o comando corretamente.