Ficheiro em lote para copiar ficheiros de uma pasta para outra pasta
Tenho uma pasta de armazenamento numa rede na qual todos os utilizadores irão armazenar os seus dados activos num servidor. Agora que o servidor vai ser substituído por um novo devido ao problema de lugar, então eu preciso copiar arquivos sub pastas da pasta de armazenamento do servidor antigo para nova pasta de armazenamento do servidor. Eu tenho abaixo ex:
de \Oldeserver\storage\data & files para \novo servidor\storage\data & files.
7 answers
Xcopy.a exe é definitivamente tua amiga aqui. Está embutido em janelas, por isso o seu custo não é nada.
Apenas xcopy /s c:\source d:\target
Você provavelmente gostaria de ajustar algumas coisas; algumas das opções que também adicionamos incluem estas:
-
/s/e
- cópia recursiva, incluindo a cópia das pastas vazias. -
/v
- adicione isto para verificar a cópia com o original. mais devagar, mas para os paranóicos. -
/h
- copiar o sistema e os ficheiros escondidos. -
/k
- copiar os atributos apenas para leitura, juntamente com os ficheiros. caso contrário, todos os arquivos se tornam leitura-escrita. -
/x
- se se preocupa com as permissões, talvez queira/o
ou/x
. -
/y
- não peça antes de substituir os ficheiros existentes. -
/z
- Se acha que a cópia pode falhar e quer reiniciá-la, use isto. Ele coloca um marcador em cada arquivo à medida que ele copia, para que você possa repetir o comando xcopy para pegar de onde ele parou.
Se achas que o xcopy pode falhar partway through (como quando você está copiando sobre uma conexão de rede instável), ou que você tem que pará-lo e quer continuar mais tarde, você pode usar xcopy /s/z c:\source d:\target
.
Só para que fique claro, quando usar xcopy /s c:\source d:\target
, Coloque "" em volta da c:\source e d:\target caso contrário, há um erro.
Ie se houver espaços no caminho ie se tiver:
"C:\Some Folder\*.txt"
Mas não é necessário se tiver:
C:\SomeFolder\*.txt
ROBOCOPY "C:\folder" "C:\new_folder" /mir
/mir é para espelho. Você também pode usar /mov para mover arquivos. Reproduz exactamente a mesma pasta. Ele pode excluir / sobrepor arquivos conforme necessário. Funciona muito bem para mim. É mais rápido que o xcopy / copy. Também é construído em janelas.
Fonte: http://technet.microsoft.com/en-us/library/cc733145.aspx
Para contornar o ' indicar um nome de ficheiro ou de directório no alvo (F = ficheiro, D = directório)?'prompt com xcopy, você pode fazer o seguinte...
echo f | xcopy /f /y srcfile destfile
Ou para aqueles de nós que apenas copiamos grandes subestruturas/pastas:
A utilização / i que especifica o destino deve ser uma pasta se copiar mais do que um ficheiro
Se quiser copiar um ficheiro que não utilize a localização absoluta, a localização relativa por outras palavras:
Não se esqueça de escrever antisslash no caminho e não slash (^^)Exemplo:
copy children-folder\file.something .\other-children-folder
PS: a localização absoluta pode ser obtida use estes caracteres especiais denominados "parâmetros do lote"
@echo off
echo %%~dp0 is "%~dp0"
echo %%0 is "%0"
echo %%~dpnx0 is "%~dpnx0"
echo %%~f1 is "%~f1"
echo %%~dp0%%~1 is "%~dp0%~1"
Verifique aqui a documentação sobre a cópia: https://technet.microsoft.com/en-us/library/bb490886.aspx
E também aqui para os parâmetros do lote documentacao: https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/percent.mspx?mfr=true