Показать полную графическую версию : [решено] Собрать информацию со всех файлов в подкаталогах
Seryoga204
17-11-2013, 15:42
Прошу помощи - имеется папка Report в ней есть еще папки с именами отделов, а в них папки с датой отчета. Необходимо выбрать во всех файлах строки которые содержат два знака "|" (например 10|23519.85| или DD|53519|), только два - не больше не меньше! Записать в отдельный фай с указанием еапротив каждой строки имя файла из которого была получена эта строка (например 10|23519.85|01122012.ВВ5 или DD|53519|07112013.800)
Foreigner
17-11-2013, 18:23
Seryoga204, Не проверял, PowerShell:
gci 'C:\Reports' -recurse | ? { $_ -isnot [io.directoryinfo] } | % {
$file = $_.name
( gc $_.fullname ) -match '^([^\|]+\|){2}$' | % { "$( $_ )$( $file )" | ac 'C:\Reports\report.txt' }
}
Приложенные образцы файлов весьма способствуют пониманию.
PowerShell:
$sRootFolder = "E:\Песочница\0331\Report"
$sResultFile = "$sRootFolder\Result.txt"
Clear-Content -Path $sResultFile -ErrorAction SilentlyContinue
Select-String -Path "$sRootFolder\*\*\*.*" -Pattern "^[^\|]*\|[^\|]*\|[^\|]*$" |`
ForEach-Object -Process { Add-Content -Path $sResultFile -Value "$($_.Line)$($_.Filename)" }
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.