O comando copy do Windows pode manipular vários arquivos?

6

Em um sistema Unix, esse comando copia dois arquivos para uma pasta chamada folder :

cp foo bar folder

No Windows, este não é um comando válido:

copy foo bar folder
The syntax of the command is incorrect.

Posso fazer isso em um comando no Windows usando suas ferramentas internas?

    
por Kevin Panko 27.07.2010 / 17:13

6 respostas

5
for %I in (file1.txt file2.txt file3.txt) do copy %I c:\somedir\

Você pode usar isso em um arquivo em lote ou diretamente na linha de comando. Não tão limpo quanto * nix, mas funciona.

    
por 27.07.2010 / 17:31
5

O Windows inclui o robocopy incorporado, que copia vários arquivos de um único comando:

robocopy a\source\folder a\dest\folder file1.docx file2.exe
    
por 20.07.2014 / 05:45
2

Vale a pena notar que, se você tiver uma expressão curinga em vez de uma lista explícita de arquivos, COPY copiará todos os arquivos para o diretório de destino:

COPY srcdir\* destdir\
COPY *sy?.* anotherdestdir\

Qualquer um vindo de um background * nix acharia particularmente confuso o fato de trabalhar enquanto listas explícitas não o fazem, porque em shells Unix-like eles são indistinguíveis para um programa - o shell expande qualquer curinga, então o programa termina com uma lista de arquivos explícitos de qualquer maneira. Isso não se aplica aqui porque o shell de comando do Windows transmite curingas diretamente aos programas e cabe a eles fazer a expansão. (Também o COPY é um comando embutido no shell em vez de um programa externo como o cp no Linux, portanto, em princípio, ele poderia desobedecer as regras usuais sobre argumentos de linha de comando, mas isso não se aplica aqui.)

    
por 12.04.2018 / 17:25
1

Aqui está um pequeno script em lote para facilitar a cópia de vários arquivos:

set FOLDER=%1

shift

for %%i in (%1 %2 %3 %4 %5 %6 %7 %8 %9) do copy %%i %FOLDER%

Uso:

my-copy <DEST-FOLDER> source [source2, source3, ...]
    
por 27.07.2010 / 23:36
1

Com o advento do Bash no Ubuntu no Windows , agora você pode usar a sintaxe nativa do Linux:

cp foo bar folder
    
por 05.08.2016 / 16:40
0

Tente

copy foo + bar folder
    
por 27.07.2010 / 17:16