Сценарий для вытаскивания информации из очень больших дисков

Мне нужен сценарий, который может собрать информацию папок/файлов от больших дисков (600 ГБ к 1 ТБ). Информация, в которой я буду нуждаться:

  • Полное имя / путь файла
  • Размер файла
  • Созданная дата
  • Измененная дата
  • К дате в последний раз получают доступ.

До сих пор у меня есть код ниже:

dir 'e:\' -recurse | 
     select FullName,Length,CreationTime,LastWriteTime,LastAccessTime | 
     Export-CSV e:\test\testit.csv -notype

Было бы возможно адаптировать сценарий поэтому, поскольку это может искать на, ‘Если измененная дата является равной ‘xxx’ дням или более старой, то выходные данные к csv..

xxx был бы числом – т.е. 365 в течение 1 года или более старый.. или xxx был бы числом – т.е. 730 в течение 2 лет или более старый..

Также было бы возможно изменить заголовки для столбцов, которые это производит на файле CSV?Спасибо

1
задан Joey 23 February 2010 в 12:22
поделиться

1 ответ

Для первой части вопроса вы можете использовать

# fixed date
Get-ChildItem c:\temp\ | ? { $_.LastWriteTime -lt [datetime]'2009-02-23' }
# variable depending on current date; it returns only items that are older than 365 days
Get-ChildItem c:\temp\ | ? { $_.LastWriteTime -lt [datetime]::Now.AddDays(-365) }

Что касается изменения заголовков .. Я могу выберите элементы с разными именами, но с одинаковым содержимым (~ переименуйте свойства):

Select-Object @{Name='ItemName'; Expression={$_.FullName } }, 
        @{Name='Write'; Expression={$_.LastWriteTime } }, 
        @{Name='Access'; Expression={$_.LastAccessTime } }

Обратите внимание, что есть блок сценария, в котором вы можете делать все, что захотите. Вы можете, например, отформатируйте даты {$ _. LastAccessTime.ToString ('yyyy-MM-dd')}


Если бы я сложил их вместе (есть только 3 свойства "переименовано")

Get-ChildItem e:\ -rec | 
    ? { $_.LastWriteTime -lt [datetime]::Now.AddDays(-365) } |
    Select-Object @{Name='ItemName'; Expression={$_.FullName } }, 
        @{Name='Write'; Expression={$_.LastWriteTime } }, 
        @{Name='Access'; Expression={$_.LastAccessTime } } |
    Export-Csv e:\test\testit.csv -notype
2
ответ дан 3 September 2019 в 01:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: