xcopy funktioniert nur, wenn ich /F verwende, um vollständige Dateinamen anzuzeigen

xcopy funktioniert nur, wenn ich /F verwende, um vollständige Dateinamen anzuzeigen

Ich habe zunächst nur verwendet copy, aber diese Ausgabe erhalten:

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.

Also habe ich es versucht xcopyund nachdem ich ein paar Dinge ausprobiert hatte, stellte ich schließlich fest, dass es nur kopiert wird, wenn ich das FFlag zum Anzeigen vollständiger Dateinamen einfüge. Kann das jemand erklären?

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

Antwort1

Du schreibst deine Pfade mit /statt \. Wenn du sie in änderst, \sollte es klappen. Ich kann dir nicht genau sagen, warum es mit /f klappt und ohne nicht, aber ich weiß aus Erfahrung, dass Pfade, die als /statt geschrieben werden \, anders gehandhabt werden.

Ich gehe davon aus, dass cmd bei der Angabe eines Parameters erkennt, dass es /sich um einen Teil eines Pfads und nicht um einen Parameter handelt, und den Befehl daher korrekt behandelt.

verwandte Informationen