Как добавить дополнительный столбец CSV, заполненный данными из поиска подстроки - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь сделать следующее: у меня есть список серверов в следующей форме. Serverapp1.dev.domain.com devserverapp2.domain.com serverapp3.prod.domain.com

Как видите, наименование такое, какое оно есть, но я пытаюсь добавить дополнительный столбец, в котором будет указано имя сервера и определено, что это app1dev, app2dev или app3prod ... это, пытаясь

$ filePath = "D: \ Data \ test_raw.csv"

$system = "D:\Data\New.csv"

$desiredColumnsSystem =
@{ expression = {$_.'NAME'}; label = 'Key-Hostname:HOSTNAME'}



$regex = '(app1)|(dev)'

Try {
    Write-Log -Message 'Starting Creation of Mashup CSV...'

    Import-Csv $filePath | Select-Object $desiredColumnsSystem -Unique |
    Export-Csv -Path $system –NoTypeInformation

    $size = ((Get-Item $system).length/1KB)
    $lastTouchedDate = (Get-Item $system).LastWriteTime

    Write-Log -Message  "Created the System CSV Successfully !! The size of $system is $size KB and the last write time was $lastTouchedDate"
}

catch
{
    Write-Log -Message $_.Exception.Message -Level Warn
}

1 Ответ

0 голосов
/ 02 апреля 2020

Я просто хочу поделиться тем, что я собрал, если у кого-нибудь будет предложение, как его улучшить или если это может помочь кому-то еще в будущем

. D:\Data\BF_Scripts\Write-Log.ps1

$filePath = "D:\Data\System.csv"


$mashup = "D:\Data\Output\AppClusterMashup.csv"

$desiredColumnsSystem =
@{ expression = {$_.'NAME'}; label = 'Key-Hostname:HOSTNAME'}



Try {
    Write-Log -Message 'Starting Creation of the Application Cluster Mashup CSV...'

    Import-Csv $filePath | ForEach-Object {
    if ($_.'NAME' -like '*dev*') {
        $Cluster = 'DEVCLUSTER'
    }
    elseif ( $_.'NAME' -like '*prod*' ) {
        $Cluster = 'PRODCLUSTER'
    }
    elseif ( $_.'NAME' -like '*ite*' ) {
        $Cluster = 'ITECLUSTER'
    }

    elseif ( $_.'NAME' -like '*otdr*' ) {
        $Cluster = 'OTDRCLUSTER'
    }
    elseif ( $_.'NAME' -like '*staging*' ) {
        $Cluster = 'STAGINGCLUSTER'
    }
    elseif ( $_.'NAME' -like '*test*' ) {
        $Cluster = 'TESTCLUSTER'
    }
    else {
    $Cluster = ''
    }
    $_
} |


Select-Object $desiredColumnsSystem ,"CLUSTER"| ForEach-Object { $_.CLUSTER = $Cluster; return $_ } |
    Export-Csv -Path $mashup –NoTypeInformation

    $size = ((Get-Item $mashup).length/1KB)
    $lastTouchedDate = (Get-Item $mashup).LastWriteTime

    Write-Log -Message  "Created the Application Cluster Mashup CSV Successfully !! The size of $mashup is $size KB and the last write time was $lastTouchedDate"
}

catch
{
    Write-Log -Message $_.Exception.Message -Level Warn
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...