Usuário com melhor resposta
mover arquivos

Pergunta
-
Boa tarde, ja vi alguns scripts aqui no forum mas nao consegui nada que se adaptasse a minha necessidade.
Eu tenho uma pasta no servidor onde são enviadas todas as digitalizações de duas impressoras, e eu preciso mover esses arquivos criando uma pasta para cada dia.
Por exemplo: Eu tenho uma digitalização do dia 02/12/2012, entao deve ser criada uma pasta com essa data e o arquivo movido para dentro dela.
Obs.: a extensão é .PDF.
Grato
Paulo Brincker
Respostas
-
Paulo,
Veja este .PS1 (PowerShell)
$origem= "c:\temp" $destino="c:\teste" foreach($arquivo in (Get-ChildItem $origem -filter "*.pdf")){ $ano=($arquivo.creationtime).year $mes="0"+""+($arquivo.creationtime).month $mes=$mes.substring($mes.length - 2,2) $dia="0"+""+($arquivo.creationtime).day $dia=$dia.substring($dia.length - 2,2) $destino_final = Join-Path -path $destino -childpath "$ano$mes$dia" New-Item -type directory -path $destino_final -erroraction "SilentlyContinue" Move-Item $arquivo.fullname -Destination $destino_final }
Alguns detalhes:
1)As duas primeiras você deve configurar a pasta de origem(onde seu scanner colocar as imagens) e a pasta de destino(pasta onde será criada uma subpasta para cada dia)
2) Eu filtrei para mover apenas pdf, se quiser que mova qualquer arquivo é só tirar o -filter "*.pdf"
3)Eu crio as subpastas no format YYYYMMDD, este formato é legal pois se vc ordenar o diretório ele fica por ordem de data, mas se este formato não for o melhor pra vc basta mexer na linha abaixo , no final dela.
$destino_final = Join-Path -path $destino -childpath "$ano$mes$dia"
Fábio de Paula Junior
- Sugerido como Resposta Carlos_rodrigues terça-feira, 4 de dezembro de 2012 13:40
- Marcado como Resposta Fábio JrModerator quarta-feira, 5 de dezembro de 2012 14:35
Todas as Respostas
-
Paulo,
Veja este .PS1 (PowerShell)
$origem= "c:\temp" $destino="c:\teste" foreach($arquivo in (Get-ChildItem $origem -filter "*.pdf")){ $ano=($arquivo.creationtime).year $mes="0"+""+($arquivo.creationtime).month $mes=$mes.substring($mes.length - 2,2) $dia="0"+""+($arquivo.creationtime).day $dia=$dia.substring($dia.length - 2,2) $destino_final = Join-Path -path $destino -childpath "$ano$mes$dia" New-Item -type directory -path $destino_final -erroraction "SilentlyContinue" Move-Item $arquivo.fullname -Destination $destino_final }
Alguns detalhes:
1)As duas primeiras você deve configurar a pasta de origem(onde seu scanner colocar as imagens) e a pasta de destino(pasta onde será criada uma subpasta para cada dia)
2) Eu filtrei para mover apenas pdf, se quiser que mova qualquer arquivo é só tirar o -filter "*.pdf"
3)Eu crio as subpastas no format YYYYMMDD, este formato é legal pois se vc ordenar o diretório ele fica por ordem de data, mas se este formato não for o melhor pra vc basta mexer na linha abaixo , no final dela.
$destino_final = Join-Path -path $destino -childpath "$ano$mes$dia"
Fábio de Paula Junior
- Sugerido como Resposta Carlos_rodrigues terça-feira, 4 de dezembro de 2012 13:40
- Marcado como Resposta Fábio JrModerator quarta-feira, 5 de dezembro de 2012 14:35
-
Obrigado Fábio, só preciso modificar uma coisa e não sei o parametro.
no lugar de $(arquivo.creationtime). year (ele pega a data de criação do arquivo, mas se eu copiar esse arquivo antes muda a data da criação)
entao o certo seria pegar a data de modificação, qual seria o parametro?
-
-