Por que o XCOPY não funciona com o meu script?

0

Estou fazendo uma ferramenta simples que fará o backup de alguns arquivos salvos para alguns dos meus jogos. Alguns dos jogos têm vários arquivos dentro de uma pasta, e eu gostaria de copiar a pasta de destino para um novo local com um novo nome, mas não consigo fazê-lo funcionar corretamente. Eu posso fazer isso com arquivos individuais com COPY e XCOPY , mas o mesmo não parece funcionar com pastas. Aqui está o que estou trabalhando:

XCOPY "%USERPROFILE%\EA Games\Dead Space" ".\Save Backup"
XCOPY "%LOCALAPPDATA%\Visceral\Dead Space" ".\Settings Backup"

Eu usei fontes como a documentação no SS64 , mas nenhum dos comandos funciona. Eu usei /s e /t , assim como outros, mas eles não fazem nada. Como copiar uma pasta para um novo local e renomeá-lo no novo local.

    
por Mr. Mendelli 12.05.2018 / 05:36

2 respostas

2

How do I copy a folder to a new location and rename it in the new location?

Eu tentaria incluir as opções /E , /I e /Y , por exemplo:

XCOPY /E /I /Y "%USERPROFILE%\EA Games\Dead Space" ".\Save Backup"
XCOPY /E /I /Y "%LOCALAPPDATA%\Visceral\Dead Space" ".\Settings Backup"

Em ordem (de SS64 ):

  • /E copia pastas e subpastas, incluindo pastas vazias (na chance de não haver arquivos de salvamento ou configurações).

  • /I instrui XCOPY a sempre assumir que o destino é uma pasta (isso é útil quando o destino não existe).

  • /Y suprime qualquer solicitação para confirmar a substituição de um arquivo (útil se você estiver sobrescrevendo arquivos / pastas existentes).

Você também pode querer considerar /C , que continuará copiando mesmo que ocorra um erro. Desde que você indicou que tentou "outros" XCOPY opções, você pode querer incluir detalhes extras se você rodar (ou tiver problemas) com estes específicos.

Em uma nota lateral, como sugerido nos comentários, eu verificaria os locais reais dos arquivos que você deseja copiar. Atualmente, o Wiki do PC Gaming for Deadspace lista esses itens como %USERPROFILE%\Documents\Electronic Arts\Dead Space para salvamentos e %LOCALAPPDATA%\Electronic Arts\Dead Space\ para configurações. Então:

XCOPY /E /I /Y "%USERPROFILE%\Documents\Electronic Arts\Dead Space" ".\Save Backup"
XCOPY /E /I /Y "%LOCALAPPDATA%\Electronic Arts\Dead Space" ".\Settings Backup"
    
por 12.05.2018 / 07:33
2

Supondo que você esteja usando o Windows Vista ou superior, considere o uso de Robocopy em vez de XCOPY. A sintaxe é um pouco diferente, mas foi projetada para funcionar em diretórios. Seu caso de uso específico é perfeito para a opção / mir. O benefício disso é que você obtém uma cópia espelhada verdadeira do diretório oringinal - ou seja, os arquivos que não existem mais na origem são excluídos no destino. Também é inteligente o suficiente para ignorar arquivos que não foram alterados desde a execução anterior.

Sua sintaxe seria simplesmente

Robocopy "%LOCALAPPDATA%\Electronic Arts\Dead Space" ".\Settings Backup" /mir
Robocopy "%LOCALAPPDATA%\Visceral\Dead Space" ".\Settings Backup" /mir
    
por 12.05.2018 / 08:45

Tags