none
comando Get-ChildItem listando um diretório com vários arquivos tendo como saída a data de escrita RRS feed

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

    quinta-feira, 27 de março de 2014 19:54

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.

    quinta-feira, 27 de março de 2014 21:32
  • 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


    sexta-feira, 28 de março de 2014 02:33
    Moderador

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.

    quinta-feira, 27 de março de 2014 21:32
  • 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


    sexta-feira, 28 de março de 2014 02:33
    Moderador
  • Obrigado Heitor, funcionou perfeitamente.
    sexta-feira, 28 de março de 2014 10:42