Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для sunnykey

Пользователь


Сообщения: 124
Благодарности: 47

Профиль | Отправить PM | Цитировать


Цитата mwz:
sunnykey,
Скорее там лежит неопределённое число файлов по маске
Фамилия.ИО.txt
и один файл Log.txt.
И надо перебирать все файлы первого типа, дописывая в новую строку Log.txt имя того файла, который проверяется, и результат из этого файла (т.е. дописывая в строку Log.txt с именем файла или найденную подстроку "..... Продукт: Lotus Notes 8.5.3 ru -- Операция установки успешно завершена" или пустую подстроку если такой в файле нет). »
Скрипт теперь перебирает все текстовые файлы, за исключением log.txt. Находит последнюю строку в файле равную Lotus Notes 8.5.3 ru -- Операция установки успешно завершена, добавляет имя из названия файла и записывает в log.txt. Если ни одна строка по шаблону не найдена, то пишет просто имя из файла. Надеюсь правильно.
Код: Выделить весь код
#Powershell script.
#Don't forget unlock script executing by 
#using command "Set-ExecutionPolicy RemoteSigned" or "Set-ExecutionPolicy Unrestricted"
#Save this file with ".ps1" extension
$LogDir='D:\google_drive'
$LogPath="$LogDir\log.txt"

filter AddUserName ([string]$uname){
    if ($_ -ne $null) {
        $uname.TrimEnd(".txt")+" -- "+$_
    }
}

if ( -not (Test-Path -Path $LogPath)) {
    New-Item -ItemType File -Path $LogPath
}
Set-Location -Path $LogDir
$FileList=Get-ChildItem -Path ".\*" -Include "*.txt" -Exclude "log.txt" -File
foreach ($el in $FileList) {
    $CurStr=Get-Content -Path $el | Select-String -Pattern `
        "Продукт: Lotus Notes 8.5.3 ru -- Операция установки успешно завершена." | `
        Select-Object -Last 1
        if ($CurStr -eq $null) {
            $CurStr=" "
        }
        $CurStr | AddUserName -uname $el.Name | Out-File -FilePath $LogPath -Append
}

-------
cmd умри, powershell живи=)
Powershel 4.0 microsoft.com/ru-ru/download/details.aspx?id=40855


Отправлено: 16:49, 04-07-2013 | #6