#powershell #powershell-1.0
#powershell #powershell-1.0
Вопрос:
Я ищу способ найти три или более файлов с одинаковыми именами, но созданных с помощью другого приложения. Затем следующее действие — сравнить все три файла, чтобы увидеть, были ли они созданы в одну и ту же дату, и, наконец, сравнить эту дату с текущей датой операционной системы.
Комментарии:
1. Что вы имеете в виду под «созданным с помощью другого приложения»? Например, вы хотите сказать, что у вас есть файл с именем «Foo», который был создан с помощью Word, Excel и Notepad, следовательно, имеющий расширения файлов foo.doc , foo.xls и foo.txt ?
Ответ №1:
В качестве частичного ответа, поскольку я не уверен, что вы имеете в виду под тем же именем…
Чтобы узнать, были ли файлы созданы в одну и ту же дату, вы можете просто сравнить свойство CreationTime каждой ссылки:
# Use Get-Item to retrieve FileInfo for two files
PS C:> $a = Get-Item 'a.txt'
PS C:> $b = Get-Item 'b.txt'
# Compare the DateTime field when they were created
PS C:> $a.CreationDate -eq $b.CreationDate
False
# Compare just the 'Date' aspect of each file ignoring the time
PS C:> $a.CreationDate.Date -eq $b.CreationDate.Date
True
Вы заметите, что дата создания включает элемент time, поэтому, если они действительно не совпадают, вы можете не получить ожидаемый результат. Чтобы убрать элемент time , вы просто добавляете a .Свойство Date для любого поля DateTime.
Для сравнения с датой и временем операционной системы:
# store the OS Date and Time for easier reference
PS C:> $now = [DateTime]::Now
PS C:> $today = [DateTime]::Today
# Compare using the stored values
PS C:> $a.CreationDate.Date -eq $now
False
PS C:> $a.CreationDate.Date -eq $today
True