none
Mover Pastas RRS feed

Respostas

Todas as Respostas

  • Rafael, boa tarde.

    Segue tópico já visto aqui no Fórum, vai te ajudar.

    http://social.technet.microsoft.com/Forums/pt-br/ba0aea43-0be9-45ba-92e8-c3caefca334f/mover-arquivos-e-pastas-antigos?forum=scriptadminpt

    Abração!

    segunda-feira, 5 de maio de 2014 19:29
  • Boa tarde...você pode tentar customizar criando um agendador de tarefas para ser executado de tempos em tempos.

    De uma verificada nesse link.

    http://social.technet.microsoft.com/Forums/pt-BR/ed2f4962-0e18-4f39-9dc8-ec52c7acf879/mover-arquivos-e-pastas-utilizando-data-de-modificao?forum=scriptadminpt

    Espero ter ajudado.

    Se útil, por favor, classifique.


    João Carlos Xavier de Macedo Specialist Platforms Microsoft MCP,MCT,MCSA,MCTS,MCITP, ENTERPRISE VIRTUALIZATION WINDOWS SERVER 2008 R2,MCSE WINDOWS SERVER 2012

    segunda-feira, 5 de maio de 2014 19:32
  • Muito Obrigado;

    Mais tenho mais uma duvida, este script ira mover os arquivos contidos dentro das pastas, ou ira mover as pastas ?

    segunda-feira, 5 de maio de 2014 19:35
  • Este script não esta movendo esta copiando 

    E esta criando uma pasta toda vez que é executado 

    segunda-feira, 5 de maio de 2014 19:51
  • É só alterar o atributo de copy para move que deve ajudar..


    João Carlos Xavier de Macedo Specialist Platforms Microsoft MCP,MCT,MCSA,MCTS,MCITP, ENTERPRISE VIRTUALIZATION WINDOWS SERVER 2008 R2,MCSE WINDOWS SERVER 2012

    segunda-feira, 5 de maio de 2014 20:03
  • Obrigado 

    Ao alterar para move deu erro no script 


    segunda-feira, 5 de maio de 2014 20:15
  • Rafael,

    Veja este script PowerShell, basta configurar as 3 primeiras linhas

    $Pasta_Origem = "C:\temp"
    $Pasta_Destino = "C:\teste"
    
    $Dias=10
    
    
    $Arquivos = Get-ChildItem $Pasta_Origem -Recurse |
        where {$_.CreationTime -gt (get-date).AddDays(-$Dias) -and !($_.PSIsContainer)} 
    
    
    foreach($Arquivo in $Arquivos){
        
        #cria diretório de destino
        New-Item ($Arquivo.Directory.FullName -replace [regex]::Escape($Pasta_Origem), $Pasta_Destino) -Type Directory -ErrorAction SilentlyContinue
    
        move-Item $Arquivo.FullName ($Arquivo.FullName -replace [regex]::Escape($Pasta_Origem), $Pasta_Destino) -Force
    
    
    }


    Fábio de Paula Junior


    sexta-feira, 16 de maio de 2014 20:52
    Moderador
  • O script não funcionou esta dando erro de patch 
    terça-feira, 20 de maio de 2014 20:24
  • Passa o script e o erro.

    Fábio de Paula Junior

    terça-feira, 20 de maio de 2014 20:30
    Moderador
  • segue 

    $Source_Folder = "C:\temp"
    $Destination_Folder = "C:\teste"
    
    $Days=10
    
    
    $Files = Get-ChildItem $Source_Folder -Recurse |
        where {$_.CreationTime -gt (get-date).AddDays(-$Dias) -and !($_.PSIsContainer)} 
    
    
    foreach($file in $files){
        
        
        New-Item ($file.Directory.FullName -replace [regex]::Escape($Source_Folder), $Destination_Folder) -Type Directory -ErrorAction SilentlyContinue
    
        Copy-Item $file.FullName ($file.FullName -replace [regex]::Escape($Source_Folder), $Destination_Folder) -Force
    
    
    }

    Erro

    New-Item : Não é possível associar o argumento ao parâmetro 'Path' porque ele é uma cadeia de caracteres vazia.
    Em C:\Users\rafael.almeida\Desktop\Sem título1.ps1:14 caractere:13
    +     New-Item <<<<  ($file.Directory.FullName -replace [regex]::Escape($Source_Folder), $Destination_Folder) -Type Directory -ErrorAction SilentlyContinue
        + CategoryInfo          : InvalidData: (:) [New-Item], ParameterBindingValidationException
        + FullyQualifiedErrorId : ParameterArgumentValidationErrorEmptyStringNotAllowed,Microsoft.PowerShell.Commands.NewItemCommand
     
    Copy-Item : Não é possível associar o argumento ao parâmetro 'Path' porque ele é nulo.
    Em C:\Users\rafael.almeida\Desktop\Sem título1.ps1:16 caractere:14
    +     Copy-Item <<<<  $file.FullName ($file.FullName -replace [regex]::Escape($Source_Folder), $Destination_Folder) -Force
        + CategoryInfo          : InvalidData: (:) [Copy-Item], ParameterBindingValidationException
        + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.CopyItemCommand

    terça-feira, 20 de maio de 2014 20:34
  • Rafael,

    Eu testei este script e funcionou bem pra mim. Talvez algo no seu ambiente está muito diferente do meu, adicione a linha abaixo acima do comando new-item e rode o script novamente, mande a saída.

    $file.Directory.FullName

    Ele tem que imprimir o diretório do arquivo atual do loop.


    Fábio de Paula Junior

    terça-feira, 20 de maio de 2014 21:09
    Moderador
  • segue o erro

    New-Item : Não é possível associar o argumento ao parâmetro 'Path' porque ele é uma cadeia de caracteres vazia.
    Em C:\Users\rafael.almeida\Desktop\Sem título1.ps1:14 caractere:17
    +         New-Item <<<<  ($file.Directory.FullName -replace [regex]::Escape($Source_Folder), $Destination_Folder) -Type Directory -ErrorAction SilentlyContinue
        + CategoryInfo          : InvalidData: (:) [New-Item], ParameterBindingValidationException
        + FullyQualifiedErrorId : ParameterArgumentValidationErrorEmptyStringNotAllowed,Microsoft.PowerShell.Commands.NewItemCommand
     
    Copy-Item : Não é possível associar o argumento ao parâmetro 'Path' porque ele é nulo.
    Em C:\Users\rafael.almeida\Desktop\Sem título1.ps1:16 caractere:14
    +     Copy-Item <<<<  $file.FullName ($file.FullName -replace [regex]::Escape($Source_Folder), $Destination_Folder) -Force
        + CategoryInfo          : InvalidData: (:) [Copy-Item], ParameterBindingValidationException
        + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.CopyItemCommand
     

    quarta-feira, 21 de maio de 2014 12:12
  • Qual versão do Powershell você está usando? (Use o comando Host)

    PS C:\Users\fabio.junior> host
    
    
    Name             : Windows PowerShell ISE Host
    Version          : 3.0
    InstanceId       : a1ef9dd8-3559-4c45-ab4c-59dbae3b53e6
    UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
    CurrentCulture   : pt-BR
    CurrentUICulture : pt-BR
    PrivateData      : Microsoft.PowerShell.Host.ISE.ISEOptions
    IsRunspacePushed : False
    Runspace         : System.Management.Automation.Runspaces.LocalRunspace


    Fábio de Paula Junior

    quinta-feira, 22 de maio de 2014 20:57
    Moderador
  • segue 

    Name             : ConsoleHost
    Version          : 2.0
    InstanceId       : b45252e0-ca4d-4be8-93ed-5c91a824d20c
    UI               : System.Management.Automation.Internal.Host.InternalHost
    CurrentCulture   : pt-BR
    CurrentUICulture : pt-BR
    PrivateData      : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
    IsRunspacePushed : False
    Runspace         : System.Management.Automation.Runspaces.LocalRunspace

    quinta-feira, 22 de maio de 2014 20:59
  • Instala o 3.0

    Windows Management Framework 3.0

    http://www.microsoft.com/en-us/download/details.aspx?id=34595


    Fábio de Paula Junior

    quinta-feira, 22 de maio de 2014 21:35
    Moderador
  • Apos instalar o script não deu erro porem os arquivos que coloque na pasta não foram movidos 

    sexta-feira, 23 de maio de 2014 12:47
  • Rafael,

    O último script que você enviou está com o comando copy-item, tem que alterar para move-item.

    ao menos copiou?


    Fábio de Paula Junior

    sábado, 24 de maio de 2014 18:04
    Moderador
  • não copiou nenhum arquivo 
    segunda-feira, 26 de maio de 2014 17:18
  • Então vamos descobrir se o problema está dentro ou fora do loop.

    Realmente existe arquivos para serem movidos?? rode isso aqui para descobrir.

    Get-ChildItem "C:\temp" -Recurse | where {$_.CreationTime -gt (get-date).AddDays(-10) -and !($_.PSIsContainer)} 

    Veja que é o comando que está no script, apenas substitui as váriaveis pelos valores que você indicou.


    Fábio de Paula Junior

    segunda-feira, 26 de maio de 2014 17:50
    Moderador
  • segue 

    Diretório: C:\temp


    Mode                LastWriteTime     Length Name                                                                                                                                             
    ----                -------------     ------ ----                                                                                                                                             
    -a---        12/05/2014     09:59     111082 Assinatura.docx   

    segunda-feira, 26 de maio de 2014 18:03
  • Rafael,

    Está corrento, então vamos pra dentro do loop.

    Execute o script abaixo e me diga qual o valor da váriavel $NovoDiretório

    $Pasta_Origem = "C:\temp"
    $Pasta_Destino = "C:\teste"
    
    $Dias=10
    
    
    $Arquivos = Get-ChildItem $Pasta_Origem -Recurse |
        where {$_.CreationTime -gt (get-date).AddDays(-$Dias) -and !($_.PSIsContainer)} 
    
    
    foreach($Arquivo in $Arquivos){
        
        #cria diretório de destino
        $NovoDiretório = ($Arquivo.Directory.FullName -replace [regex]::Escape($Pasta_Origem), $Pasta_Destino)
        $NovoDiretório
    
        New-Item $NovoDiretório -Type Directory -ErrorAction SilentlyContinue
    
        move-Item $Arquivo.FullName $NovoDiretório -Force
    
    
    }


    Fábio de Paula Junior

    terça-feira, 27 de maio de 2014 19:12
    Moderador
  • Quando eu executei o script ele moveu o arquivo 
    terça-feira, 27 de maio de 2014 19:18
  • Resolvido?

    Fábio de Paula Junior

    • Marcado como Resposta Rafael.Almeida terça-feira, 27 de maio de 2014 20:28
    terça-feira, 27 de maio de 2014 20:22
    Moderador
  • vlw obrigado 
    terça-feira, 27 de maio de 2014 20:28