XCOPY interrupteur pour créer un répertoire spécifié si elle n'existe pas?
Je suis à l'aide de la commande XCOPY dans un post-événement de construction de copier Dll compilées à partir de leur sortie dossiers à l'application principale du dossier de sortie. Les Dll sont copiés à un "Modules" sous-dossier dans l'application principale du dossier de sortie, comme ceci:
xcopy "$(TargetPath)" "$(SolutionDir)Prism4Demo.Shell$(OutDir)Modules\"
La commande fonctionne bien si le dossier Modules existe, mais j'ai découvert lors des tests si le dossier n'existe pas, XCOPY ne pas le créer, et la commande échoue.
Est-il un XCOPY interrupteur qui va provoquer le dossier à créer s'il n'existe pas? Si non, que pourrais-je ajouter à mon post-événement de construction pour créer le dossier s'il n'existe pas? Merci pour votre aide.
- Voir mon commentaire à la accepté de répondre à
Vous devez vous connecter pour publier un commentaire.
J'ai essayé cela sur la ligne de commande à l'aide de
et le répertoire cible a été correctement créé.
Si non, vous pouvez créer la cible dir à l'aide de la
mkdir
de commande aveccmd
's les extensions de commande activé comme('/x' permet les extensions de commande dans le cas où ils ne sont pas activés par défaut sur votre système, je ne suis pas familier avec
cmd
)utilisation
pour plus d'informations 🙂
Réponse à utiliser "/I" est un travail, mais avec un petit truc en cible, il doit se terminer par le caractère \ pour dire xcopy que la cible est un répertoire et pas de fichier!
Exemple:
ne fonctionne pas et le code de retour de 2, mais celui-ci:
Arguments de ligne de commande utilisé dans mon exemple:
/F - Affiche la totalité du code source & cible les noms de fichiers
/R - Cela va écraser les fichiers en lecture seule
/Y - Supprime la demande de remplacer un fichier existant(s)
/Je - Suppose que la destination est un répertoire (mais doivent se termine par \)
/F
, pourquoi/R
, pourquoi/Y
. Dans mon cas,/Y
résolu le problème et que les futurs lecteurs auront l'avantage de savoir pourquoi sans exploration de données Internet./I
n'était pas nécessaire pour conditionnellement créer le répertoire, mais +1 pour la fin de la trajectoire de la barre oblique inverse.Je déteste le PostBuild étape, il permet trop de choses à l'extérieur de l'outil de génération de sa juridiction. Je crois qu'il vaut mieux laisser MSBuild gérer le processus de copie, et de faire la mise à jour. Vous pouvez modifier la .csproj fichier comme ceci:
Utiliser le /i avec xcopy et si le répertoire n'existe pas, il va créer le répertoire
pour vous.
Vous pouvez utiliser robocopy:
J'ai essayé cette commande.il est travaillé pour moi.
Essayer /E
Pour obtenir une liste complète des options: xcopy /?
Simple réponse courte est: est-ce