Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Собрать информацию со всех файлов в подкаталогах (http://forum.oszone.net/showthread.php?t=272237)

Seryoga204 17-11-2013 15:42 2256486

Собрать информацию со всех файлов в подкаталогах
 
Прошу помощи - имеется папка Report в ней есть еще папки с именами отделов, а в них папки с датой отчета. Необходимо выбрать во всех файлах строки которые содержат два знака "|" (например 10|23519.85| или DD|53519|), только два - не больше не меньше! Записать в отдельный фай с указанием еапротив каждой строки имя файла из которого была получена эта строка (например 10|23519.85|01122012.ВВ5 или DD|53519|07112013.800)

Foreigner 17-11-2013 18:23 2256587

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 2256602

Приложенные образцы файлов весьма способствуют пониманию.

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)" }



Время: 08:37.

Время: 08:37.
© OSzone.net 2001-