Eu gostaria de usar xcopy
para mover, não copiar arquivos em uma rede com o sinalizador Verificar. Não foi possível encontrar uma opção no xcopy para mover arquivos, existe algum que xmove
eu possa usar verify
?
No momento, estou usando, xcopy /D /V
mas preciso me livrar dos arquivos na fonte somente quando é verificado que um arquivo foi copiado com êxito para o destino.
/v
não garante que um arquivo tenha sido gravado corretamente: caches de disco e SO significam que um arquivo em um cache de gravação será recuperado a partir daí antes de ser confirmado com êxito. A única opção segura é fazer uma cópia e agendar uma verificação e exclusão em um momento futuro. Heuristicamente, diria que 5 minutos seriam suficientes, mas não existe uma regra rígida: depende da atividade do disco e do tamanho dos caches (falo como alguém que encontrou falhas de gravação em cache).Respostas:
Você deve conferir
robocopy
, é muito mais poderoso quexcopy
. Você pode facilmente mover arquivos com/MOV
ou/MOVE
.Para mover apenas arquivos (excluir da fonte após copiar)
Para mover arquivos e diretórios (exclua da fonte após copiar)
http://ss64.com/nt/robocopy.html
fonte
verify
tanto quanto eu posso ver./MOVE : Move files and dirs (delete from source after copying)
. Se não copiar, não removerá a fonte.verify
. Não vejo nada nas informações de robocopy que realmente verifique os dois tamanhos de arquivo para garantir que não foi apenas movido, mas movido corretamente.Você pode usar um arquivo em lotes para executar seu
Xcopy
comando com a verificação, seguida de uma verificação do nível de erro retornado pelo Xcopy para determinar se os arquivos foram copiados com êxito ou não. Se sim, exclua a fonte.Na documentação do Xcopy :
Lote de exemplo:
fonte
errorlevel
ainda trabalho, se eu estou fazendo:dir args && xcopy args >> logfile.txt
? Ou será oerrorlevel
resultado dedir
?if errorlevel 0
SEMPRE dispara. Como está realmente procurando,if errorlevel >= 0
verifique o caso de erroif errorlevel 1 ( ... failure case ... ) else ( ... success case ... )
. Ou, se você preferir o estiloif not errorlevel 0 (... success case ... )
ou, se você preferir o estiloif %ERRORLEVEL% EQU 0 ( ... success case ... )