O PowerShell toca todos os arquivos mais recentes que

2

Eu encontrei a seguinte pergunta no ServerFault:

Comando de toque recursivo do Windows

Que parcialmente responde à minha pergunta com esta resposta:

Comando de toque recursivo do Windows

No entanto, gostaria de tocar todos os arquivos (em raiz e em subpastas (recursivamente)) que sejam mais recentes que 31 de janeiro de 2013 (31/01/13). Como eu faria isso?

Eu tenho o PowerShell 2 disponível.

ATUALIZAÇÃO:

Descobri que este scriptlet obtém todos os arquivos que eu sou depois:

Get-ChildItem C:\path\to\files -recurse | Where-Object { $_.LastWriteTime -ge [DateTime] "1/31/2013 9:00AM" }

Mas não sei como combiná-lo com o comando "touch":

(ls file).LastWriteTime = DateTime.now

Os itens a seguir parecem lógicos, mas não posso testá-los como backup de meus arquivos. Isso pode atrapalhar a data / hora de modificação dos meus arquivos:

(Get-ChildItem C:\path\to\files -recurse | Where-Object { $_.LastWriteTime -ge [DateTime] "1/31/2013 9:00AM" }).LastWriteTime = DateTime.now

Então, isso funcionará?

    
por atwright147 21.05.2013 / 17:53

1 resposta

3

O Powershell para usar o Unix touch parece tolo para mim.

Em vez disso, use apenas cmdlets Powershell nativos.

This artigo cobre:

Essencialmente:

Get-ChildItem -Path $youFolder -Recurse | Foreach-Object {
    if ($_.LastWriteTime -ge [DateTime] "1/31/2013 9:00AM")
    { 
        $_.LastWriteTime = Get-Date
    }
}

Deve fazer o truque.

    
por 21.05.2013 / 18:09