2

Я пытаюсь изучить Windows PowerShell и, в частности, хотел бы написать скрипт для работы со всеми файлами в папке (включая подкаталоги). Сценарий будет проверять каждый файл, и если время создания файла находится в пределах окна, скажем, с 14:00 до 18:00, то время создания должно быть установлено на заданное время даты, $ my_date.

У меня есть следующее, но я изо всех сил пытаюсь заставить это работать. Интересно, может кто-нибудь помочь, пожалуйста?

Get-Childitem |
ForEach-Object {
$date = $_.CreationTime
if ( ($date.ToString('HH') -eq 14) -or ($date.ToString('HH') -eq 15) -or ($date.ToString('HH') -eq 16) -or ($date.ToString('HH') -eq 17) -or ($date.ToString('HH') -eq 18))
{$_.CreationTime=$my_date}

1 ответ1

0

Вы можете установить обозначение .. в Powershell, чтобы создать диапазон целочисленных значений, и вы можете использовать оператор -in чтобы проверить, появляется ли значение в диапазоне.

# Define a range from 2pm - 6pm 
$hourRange = 14..24

# New date to set.
$myDate = [datetime]::Now

# Get files & folders
Get-ChildItem | Where-Object { 

    # Which creation times fall within the hour range.
    $_.CreationTime.Hour -in $hourRange } | ForEach-Object {

        # Change the creation time.
        $_.CreationTime = $myDate
}

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