none
XCOPY para todos semelhantes RRS feed

  • 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.

    segunda-feira, 31 de outubro de 2011 13:12

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
    segunda-feira, 31 de outubro de 2011 15:57
    Moderador

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
    segunda-feira, 31 de outubro de 2011 13:42
  • 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
    segunda-feira, 31 de outubro de 2011 15:17
    Moderador
  • 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
    segunda-feira, 31 de outubro de 2011 15:57
    Moderador