Snippets

Ettar Powershell Auslesen und Auswerten Configdateien

Created by Ettar
#Scannt den Ordner und alle Unterordner nach Dateien mit der Endung "*.conf". Erzeugt außerdem bei Bedarf die Textdatei.
#$path: Der Pfad zu dem Ordner mit den Configdateien
#$fileTxt: Der Pfad mit Namen der Textdatei in welche reingeschrieben werden soll. Wichtig: Die Endung nicht vergessen (z.B. "C:\test.txt")
function main{
    $path = ""
    $fileTxt = ""

    if(!(Test-Path $fileTxt)) {
        New-Item -Path $fileTxt -ItemType File
    } else{
        $neu = Read-Host "Soll die Datei neu erstellt werden (j/n)?"
        if($neu -eq "j"){
            Remove-Item -Path $fileTxt
            New-Item -Path $fileTxt -ItemType File
        }
    }

    $files = Get-ChildItem -Path $path -Recurse | where{$_.Name -like "*.conf"}

    foreach($file in $files) {
        $i = 0
        $temp = Get-Content $file.FullName
        foreach($row in $temp) {
            $i++;
            if($i -eq 17) {
                wr -r $row -file $fileTxt
            } elseif($i -eq 18) {
                wr -r $row -file $fileTxt
                break
            }
        }
    }
}

#Dient zum Auswerten der Daten und zum Schreiben in die Textdatei
function wr($r,$file){
    $r = $r.split("=")
    $out = ""
    foreach($p in $r) {
        $b = $p.split(" ")
        foreach($l in $b) {
            if($l -like '"'+"*"+'"'){
                $l = $l.substring(1)
                $l = $l.substring(0,$l.length-1)
                if($out -eq ""){
                    $out = $l
                } else {
                    $out += ":"+$l
                }
                
            }
        }
    }
    Add-Content -Path $file -Value $out
}

main

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.