Usuário com melhor resposta
XCOPY para todos semelhantes

Pergunta
-
Bom dia!
Possuo um BAT que realiza o comando XCOPY de arquivos com determinada extensão de um diretório para outro. No entanto, ele está copiando todos os arquivos semelhantes, ao invés de somente aqueles que eu determino, por exemplo:
xcopy E:\backup\*.onl k:\ /s /e /y
O comando copia todos os arquivos *.ONL do diretório E:\backup para o diretório K:\, no entanto nesse mesmo diretório eu possuo arquivos *.ONL_1 e estes também estão sendo copiados, porém não quero copiá-los. Existe algum parâmetro no comando que eu faça apenas a cópia dos que eu preciso e desconsidere os demais.
Respostas
-
Dá pra brincar com o PowerShell também
$src = 'C:\Backup' $dst = 'K:' $Pastas = Get-ChildItem $src -recurse | Where-Object {$_.PSIsContainer -eq $True} If (-not(Test-Path $dst)){New-Item $dst -type directory} Copy-Item "$src\*.onl" -destination $src.replace($src,$dst) -force foreach($Pasta in $Pastas){ $SRC_FullName = $Pasta.fullname $DST_FullName = $FullName.replace($src,$dst) If (-not(Test-Path $DST_FullName)){New-Item $DST_FullName -type directory} Copy-Item "$FullName\*.onl" -destination $DST_FullName -force }
Fábio de Paula Junior- Editado Fábio JrModerator segunda-feira, 31 de outubro de 2011 15:59
- Sugerido como Resposta Matheus Kamphorst segunda-feira, 31 de outubro de 2011 16:00
- Marcado como Resposta Fábio JrModerator quinta-feira, 3 de novembro de 2011 10:59
Todas as Respostas
-
Oi amigo, não sou um expert em xcopy, mas lendo as opções dele não encontrei nada sobre isso, quem sabe
você aplica esse filtro em seu script.
Matheus Kamphorst Microsoft Certified Technology Specialist Windows Server 2008 Network Infrastructure, Configuring Windows Server 2008 Active Directory, Configuring -
Acredito que o problema está relacionado com os nomes curtos dos arquivos (8.3).
Veja que no formato 8.3 eles acabam tendo a mesma extensão.
Short Long A-CPIA~2.ONL a - Cópia (2).onl_1 A-CPIA~1.ONL a - Cópia.onl
Existe um Programa chamado XXCOPY ( http://www.xxcopy.com/xcpydnld.htm ) que trabalha bem neste sentido.
É um produto comercial mas tem uma licença para uso pessoal.
Para seu exemplo estes parametros funcionariam
xxcopy E:\Backup\*.onl K: /E /R /PZ0
/E - Subdiretório/R - Permite subscrever arquivos somente leitura
/PZ0 - suprimi prompt de confirmação
Fábio de Paula Junior -
Dá pra brincar com o PowerShell também
$src = 'C:\Backup' $dst = 'K:' $Pastas = Get-ChildItem $src -recurse | Where-Object {$_.PSIsContainer -eq $True} If (-not(Test-Path $dst)){New-Item $dst -type directory} Copy-Item "$src\*.onl" -destination $src.replace($src,$dst) -force foreach($Pasta in $Pastas){ $SRC_FullName = $Pasta.fullname $DST_FullName = $FullName.replace($src,$dst) If (-not(Test-Path $DST_FullName)){New-Item $DST_FullName -type directory} Copy-Item "$FullName\*.onl" -destination $DST_FullName -force }
Fábio de Paula Junior- Editado Fábio JrModerator segunda-feira, 31 de outubro de 2011 15:59
- Sugerido como Resposta Matheus Kamphorst segunda-feira, 31 de outubro de 2011 16:00
- Marcado como Resposta Fábio JrModerator quinta-feira, 3 de novembro de 2011 10:59