Ошибка: «% _. LastWriteTime не распознается как имя командлета» - PullRequest
0 голосов
/ 25 января 2019

Я создаю сценарий PS для извлечения файлов плохой почты (.bad) из IIS smtp relay только с определенного дня ...

Только с этой частью кода я получаю ...

% _. LastWriteTime: термин «% _. LastWriteTime» не распознается как имя командлета, функции, файла сценария или работоспособной программы. Проверьте правильность написания имени или, если путь был указан, проверьте правильность пути и повторите попытку.

Get-Childitem $ SourceFolder * .bad | Where-Object {$ _. LastWriteTime -eq 23.01.2009}

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Попробуйте ваш вариант использования таким способом, а не тем, как установлена ​​строка даты.

Clear-Host
Get-ChildItem -Path 'd:\temp\certs'
<#
# Results

    Directory: D:\temp\certs


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        1/24/2019   7:39 PM              0 New Text Document.cer
-a----        1/24/2019   7:39 PM              0 New Text Document.crt
-a----        1/24/2019   7:39 PM              0 New Text Document.pfx
#>

(Get-ChildItem -Path 'd:\temp\certs') -match '.cer|.crt'

<#
# Results

    Directory: D:\temp\certs


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        1/24/2019   7:39 PM              0 New Text Document.cer
-a----        1/24/2019   7:39 PM              0 New Text Document.crt
#>

Clear-Host
Get-ChildItem -Path 'd:\temp\certs' | 
Where-Object -FilterScript {$_.Name -match '.cer|.crt'}

<#
# Results

    Directory: D:\temp\certs


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        1/24/2019   7:39 PM              0 New Text Document.cer
-a----        1/24/2019   7:39 PM              0 New Text Document.crt
#>



Clear-Host
Get-Childitem 'D:\temp' -Filter '*.txt' | 
Where-Object {$_.LastWriteTime -like '10/18/2018*'}

<#
# Results

    Directory: D:\temp


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       10/18/2018   8:46 PM            313 DataSet.txt
#>

Clear-Host
Get-Childitem 'D:\temp' -Filter '*.txt' | 
Where-Object {$_.LastWriteTime -match '10/18/2018'}

<#
# Results

    Directory: D:\temp


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       10/18/2018   8:46 PM            313 DataSet.txt
#>
0 голосов
/ 25 января 2019

Я не думаю, что Get-Childitem работает с Regex. Возможно, вам понадобится связать результаты вместе с чем-то вроде этого

Get-childitem $SourceFolder| where-object{$_.Name -match "*.bad"}| where-object{$_.Lastwritetime...}

...