Usuário com melhor resposta
comando Get-ChildItem listando um diretório com vários arquivos tendo como saída a data de escrita

Pergunta
-
Pessoal boa tarde.
Estou iniciando em PowerShell e queria fazer o seguinte:
Pegar um arquivo em um determinado diretório e recuperar a data da ultima gravação. Cheguei até o seguinte ponto:
Get-ChildItem H:\pasta\arquivos\ |Select-object LastWriteTime
Até então consegui recuperar essa data, só que grava no array o seguinte valor --> @{LastWriteTime=27/03/2014 16:53:20}. Eu gostaria de pegar só a data 27/03/2014 e compara-lá com outra data.
Obrigado!
Respostas
-
Com certeza existe uma forma mais fácil, no entanto, eu encontrei essa forma.
espero que ajude:
$data = Get-ChildItem H:\pasta\arquivos\ | Select LastWriteTime $dia = $data.LastWriteTime.Day $mes = $data.LastWriteTime.Month $ano = $data.LastWriteTime.Year $sdata = [string]$dia + "/" + [string]$mes + "/" + [string]$ano
Heitor Mocelin Ferreira - MCP|MCTS|MCITP|MCSA-2k8/12|MCSE-SrvInfra|MCT Microsoft Premier Support - Latino-Americano.
- Sugerido como Resposta Heitor Mocelin quinta-feira, 27 de março de 2014 21:33
- Marcado como Resposta Rodrigo Vizu Correia sexta-feira, 28 de março de 2014 10:41
-
Veja um exemplo pra você pegar todos os arquivos com data de gravação igual a 27/03/2014
Get-ChildItem "H:\pasta\arquivos" | where {$_.LastWriteTime.Date -eq (get-date -date "27/03/2014")}
Dois pontos importantes:
1) Usei o LastWriteTime.Date, assim eu desconsidero a hora da data
2) Comparei com um objeto data ao invés de uma string data, usei o get-date pra criar a data.
Só mais uma brincadeira
Get-ChildItem "H:\pasta\arquivos" | Select-Object Name, LastWriteTime, @{Name="DataFormatada";Expression={$_.LastWriteTime.Date}}
Ref.:
Formatting Dates and Times
http://technet.microsoft.com/en-us/library/ee692801.aspx
Fábio de Paula Junior
- Editado Fábio JrModerator sexta-feira, 28 de março de 2014 03:05 código
- Marcado como Resposta Rodrigo Vizu Correia sábado, 17 de maio de 2014 21:47
Todas as Respostas
-
Com certeza existe uma forma mais fácil, no entanto, eu encontrei essa forma.
espero que ajude:
$data = Get-ChildItem H:\pasta\arquivos\ | Select LastWriteTime $dia = $data.LastWriteTime.Day $mes = $data.LastWriteTime.Month $ano = $data.LastWriteTime.Year $sdata = [string]$dia + "/" + [string]$mes + "/" + [string]$ano
Heitor Mocelin Ferreira - MCP|MCTS|MCITP|MCSA-2k8/12|MCSE-SrvInfra|MCT Microsoft Premier Support - Latino-Americano.
- Sugerido como Resposta Heitor Mocelin quinta-feira, 27 de março de 2014 21:33
- Marcado como Resposta Rodrigo Vizu Correia sexta-feira, 28 de março de 2014 10:41
-
Veja um exemplo pra você pegar todos os arquivos com data de gravação igual a 27/03/2014
Get-ChildItem "H:\pasta\arquivos" | where {$_.LastWriteTime.Date -eq (get-date -date "27/03/2014")}
Dois pontos importantes:
1) Usei o LastWriteTime.Date, assim eu desconsidero a hora da data
2) Comparei com um objeto data ao invés de uma string data, usei o get-date pra criar a data.
Só mais uma brincadeira
Get-ChildItem "H:\pasta\arquivos" | Select-Object Name, LastWriteTime, @{Name="DataFormatada";Expression={$_.LastWriteTime.Date}}
Ref.:
Formatting Dates and Times
http://technet.microsoft.com/en-us/library/ee692801.aspx
Fábio de Paula Junior
- Editado Fábio JrModerator sexta-feira, 28 de março de 2014 03:05 código
- Marcado como Resposta Rodrigo Vizu Correia sábado, 17 de maio de 2014 21:47
-