Найдите три файла с одинаковыми именами, но создайте в разных приложениях

#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