2

Я нашел следующий вопрос на ServerFault:

Windows рекурсивная сенсорная команда

Который частично отвечает на мой вопрос с этим ответом:

Windows рекурсивная сенсорная команда

Тем не менее, я хотел бы коснуться всех файлов (в корневой и вложенных папках (рекурсивно)), которые новее, чем 31 января 2013 г. (31.01.13). Как бы я поступил так?

У меня есть PowerShell 2 доступны.

ОБНОВИТЬ:

Я обнаружил, что этот скриптлет получает все файлы, которые мне нужны:

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

Но я не уверен, как объединить это с командой "touch":

(ls file).LastWriteTime = DateTime.now

Следующее представляется логичным, но я не могу проверить это, поскольку резервное копирование моих файлов испортит дату / время изменения моих файлов:

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

Так будет ли это работать?

1 ответ1

3

PowerShell для использования Unix Touch кажется мне глупым.

Вместо этого просто используйте собственные командлеты Powershell.

Эта статья покрывает это:

По существу:

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

Должен сделать свое дело.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .