Войти

Показать полную графическую версию : [решено] Собрать информацию со всех файлов в подкаталогах


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' }

}

Iska
17-11-2013, 18:42
Приложенные образцы файлов весьма способствуют пониманию.

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