Usuário com melhor resposta
Mover Pastas

Pergunta
-
Gostaria de saber se existe um script que mova pastas que não são acessadas a 10 dias.
- Movido Luiz Felipe S. T. Costa segunda-feira, 5 de maio de 2014 19:46
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!
- Sugerido como Resposta Jorge Pretel - MCSE Infrastructure segunda-feira, 5 de maio de 2014 19:29
- Marcado como Resposta Fábio JrModerator terça-feira, 20 de maio de 2014 20:05
-
Resolvido?
Fábio de Paula Junior
- Marcado como Resposta Rafael.Almeida terça-feira, 27 de maio de 2014 20:28
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!
- Sugerido como Resposta Jorge Pretel - MCSE Infrastructure segunda-feira, 5 de maio de 2014 19:29
- Marcado como Resposta Fábio JrModerator terça-feira, 20 de maio de 2014 20:05
-
Boa tarde...você pode tentar customizar criando um agendador de tarefas para ser executado de tempos em tempos.
De uma verificada nesse link.
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
-
-
Este script não esta movendo esta copiando
E esta criando uma pasta toda vez que é executado
- Editado Rafael.Almeida segunda-feira, 5 de maio de 2014 19:54
-
-
Obrigado
Ao alterar para move deu erro no script
- Editado Rafael.Almeida 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
- Editado Fábio JrModerator sexta-feira, 16 de maio de 2014 20:54 copy > move
-
-
-
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
-
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
-
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
-
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
-
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 -
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
-
-
-
-
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
-
-
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
-
-
Resolvido?
Fábio de Paula Junior
- Marcado como Resposta Rafael.Almeida terça-feira, 27 de maio de 2014 20:28
-