Sur un système Unix, cette commande copie deux fichiers dans un dossier nommé folder
:
cp foo bar folder
Sous Windows, cette commande n'est pas valide:
copy foo bar folder
The syntax of the command is incorrect.
Puis-je faire cela en une seule commande sous Windows, en utilisant ses outils intégrés?
windows
command-line
Kevin Panko
la source
la source
Réponses:
Vous pouvez l'utiliser dans un fichier de commandes ou directement à partir de la ligne de commande. Pas aussi propre que * nix, mais ça marche.
la source
stevecopy foo bar [...] folder
et il ferait cette boucle automatiquement.Windows inclut Robocopy intégré, qui copie plusieurs fichiers à partir d'une seule commande:
la source
Il est à noter que si vous avez une expression générique plutôt qu'une liste explicite de fichiers, COPY copie tous les fichiers dans le répertoire cible:
Toute personne venant d'un contexte * nix trouverait cela très déroutant de voir que les listes explicites ne fonctionnent pas, car dans les shells de type Unix, il est impossible de les distinguer d'un programme - le shell développe tous les caractères génériques; liste de fichiers de toute façon. Ceci ne s'applique pas ici car le shell de commande Windows transmet directement les caractères génériques aux programmes et leur appartient de faire l'expansion. (COPY est également une commande intégrée au shell plutôt qu’un programme externe tel que cp sous Linux, donc, en principe, elle pourrait potentiellement enfreindre les règles habituelles concernant les arguments en ligne de commande, mais cela ne s’applique pas ici.)
la source
foo|bar
?Voici un court script par lots pour faciliter la copie de plusieurs fichiers:
Usage:
la source
for %%in (%*) do copy ...
et puis le nombre de fichiers dans les fichiers n’est pas limité à 10 (toujours limité, mais 255 est un peu plus de marge :). Oh, et vous n'avez pas besoin nonSHIFT
plus. Plus: ss64.com/nt/syntax-args.htmlcopy %%i %1
? Cela pourrait fonctionner, mais cela essaierait de copier le premier argument sur lui-même, ce qui ne ferait que créer un message d'erreur inoffensif.Avec l'avènement de Bash sur Ubuntu sous Windows , vous pouvez désormais utiliser la syntaxe native de Linux:
la source
Essayer
la source
cat foo bar > folder
cat foo bar > folder/foo