Powershell LastWriteTime 使用 select-string -pattern 匹配的每个项目
Powershell LastWriteTime each item that is matched using select-string -pattern
尝试查看文件列表并在 powershell 中使用正则表达式解析出 phone 数字,但我还想包括每个文件的 LastWriteTime
我目前正在使用它,但它似乎只从第一场比赛中提取我需要的日期信息
$loc = Read-Host "Enter location"
dir $loc *.xml |
Select-String -pattern '\([0-9]{3}\) [0-9]{3}-[0-9]{4}' -AllMatches |
% {$_.Matches} |
Select @{n=' Date Time ';e={(get-item $loc).LastWriteTime.ToString('MM/dd/yyyy hh:mm:ss')}}, @{n=' Phone Number';e={$_.Value}} |
ft -AutoSize
结果是
Date Time Phone Number
------------------- -------------
07/07/2015 04:27:32 (555) 555-1234
07/07/2015 04:27:32 (555) 555-2234
07/07/2015 04:27:32 (555) 555-3234
07/07/2015 04:27:32 (555) 555-4234
任何关于此的想法都会很棒
@Matt提供的解决方案
dir $loc *.xml | Select-String -pattern '\([0-9]{3}\) [0-9]{3}-[0-9]{4}' -AllMatches | Select @{n=' Date Time ';e={(get-item $_.Path).LastWriteTime.ToString('MM/dd/yyyy hh:mm:ss')}}, @{n=' Phone Number ';e={$($_.Matches).Value}} |ft -AutoSize
我打算清理代码,但我删除了内部 foreach 循环并添加了我想要的 属性。
$loc = Read-Host "Enter location"
dir $loc *.xml |
Select-String -pattern '\([0-9]{3}\) [0-9]{3}-[0-9]{4}' -AllMatches |
Select @{n='Date Time';e={(get-item $_.Path).LastWriteTime.ToString('MM/dd/yyyy hh:mm:ss')}}, @{n=' Phone Number';e={$_.Matches.Value}} |
ft -AutoSize
匹配对象的路径 属性 表示匹配行的完整文件路径。我使用点符号表示至少需要 PowerShell 3.0 的匹配值。如果你没有它很容易解决。
尝试查看文件列表并在 powershell 中使用正则表达式解析出 phone 数字,但我还想包括每个文件的 LastWriteTime
我目前正在使用它,但它似乎只从第一场比赛中提取我需要的日期信息
$loc = Read-Host "Enter location"
dir $loc *.xml |
Select-String -pattern '\([0-9]{3}\) [0-9]{3}-[0-9]{4}' -AllMatches |
% {$_.Matches} |
Select @{n=' Date Time ';e={(get-item $loc).LastWriteTime.ToString('MM/dd/yyyy hh:mm:ss')}}, @{n=' Phone Number';e={$_.Value}} |
ft -AutoSize
结果是
Date Time Phone Number
------------------- -------------
07/07/2015 04:27:32 (555) 555-1234
07/07/2015 04:27:32 (555) 555-2234
07/07/2015 04:27:32 (555) 555-3234
07/07/2015 04:27:32 (555) 555-4234
任何关于此的想法都会很棒
@Matt提供的解决方案
dir $loc *.xml | Select-String -pattern '\([0-9]{3}\) [0-9]{3}-[0-9]{4}' -AllMatches | Select @{n=' Date Time ';e={(get-item $_.Path).LastWriteTime.ToString('MM/dd/yyyy hh:mm:ss')}}, @{n=' Phone Number ';e={$($_.Matches).Value}} |ft -AutoSize
我打算清理代码,但我删除了内部 foreach 循环并添加了我想要的 属性。
$loc = Read-Host "Enter location"
dir $loc *.xml |
Select-String -pattern '\([0-9]{3}\) [0-9]{3}-[0-9]{4}' -AllMatches |
Select @{n='Date Time';e={(get-item $_.Path).LastWriteTime.ToString('MM/dd/yyyy hh:mm:ss')}}, @{n=' Phone Number';e={$_.Matches.Value}} |
ft -AutoSize
匹配对象的路径 属性 表示匹配行的完整文件路径。我使用点符号表示至少需要 PowerShell 3.0 的匹配值。如果你没有它很容易解决。