PS H:\> Invoke-Command -computername SERVERNAME { Get-ChildItem -path E:\dfsroots\datastore2\public} | Where-Object {{ $_.e
xtension-match "xls" -or $_.extension-match "xlk" } -and { $_.creationtime -ge "06/01/2014"}}
Выше мой пример кода. Я пытаюсь удаленно запускать этот код PowerShell на моем файловом сервере и возвращать все файлы .xls и .xlk с датой создания или позже 6/1/2014. Когда я запускаю этот код, он начинает выплевывать все папки в этом удаленном месте. Если я сравниваю только две такие вещи:Множество -или -или в PowerShell Где-объекта заявление
PS H:\> Invoke-Command -computername SERVERNAME { Get-ChildItem -path E:\dfsroots\datastore2\public} | Where-Object { $_.extension-match "xls" -and $_.creationtime -ge "06/01/2014"}
Только файлы xls, созданные после или после отображения даты. Что тут происходит? Нужно ли использовать что-то другое, кроме гнезда -and
и -or
заявлений?
Обратите внимание, что разбивка команды на несколько операторов «где» тоже не работает. Я бы ввел команду: PS H: \> Invoke-Command -computername SERVERNAME {Get-ChildItem -path E: \ dfsroots \ datastore2 \ public} | Где-Объект {$ _. Ex Натяжение-матч "xls" -или $ _. Extension-match "xlk"} | where-object {$ _. creationtime -ge "06/01/2014"} И он начинает выплескивать файлы xlsx, чего я не хочу. –
Используйте круглые скобки, не фигурные скобки, чтобы заключить опции, поэтому 'Where {($ _. Extension -Match" xls "-или $ _. Расширение -Match" xlk ") -and $ _. CreationTime -ge" 06/01/2014 "}' – TheMadTechnician
@ TheMadTechnician, если вы могли бы помочь мне всего минуту, я не могу понять, что такое мини-Markdown форматирование, а что нет. Как вы заключили это в блок «code»? –