h41msh1c0r
Goto Top

Powershell funktion mag nicht und es wird keine Parameterliste angezeigt

Aloa in die Runde,

statt immer einen Schnipsel an den nächsten zu heften, sollte mal eine Funktion rauskommen. *gg*

2 Listen in CSV Form liegen vor und ich filtere die erste Liste anhand der Kürzel aus der 2ten.
Ergebnis wird in ein 3tes CSV geschrieben. Soweit so gut.

Stand:
function Get-OwnClients
{
    [CmdletBinding()]
    [Alias()]
    [OutputType([int])]
    Param
    (
        # Hilfebeschreibung zu Param1
        [Parameter(Mandatory=$true,
                   ValueFromPipelineByPropertyName=$true,
                   Position=0)]
        $Param1,

        # Hilfebeschreibung zu Param2
        [Parameter(Mandatory=$true,
                   ValueFromPipelineByPropertyName=$true,
                   Position=0)]
        $Param2,

        # Hilfebeschreibung zu Param2
        [Parameter(Mandatory=$true,
                   ValueFromPipelineByPropertyName=$true,
                   Position=0)]
        $Param3
    )

    Begin
    {
     $quelle_Namen   = import-csv -Path $Param1 -Delimiter ";"  
     $quelle_Kuerzel = import-csv -Path $Param2 -Delimiter ";"  

     $ergebnis = @()
    }
    Process
    {
      foreach($item in $quelle_Kuerzel){
            Write-Host $item.Netzkuerzel
            foreach($item2 in $quelle_Namen){
                if ($item2.Name.StartsWith($item.Netzkuerzel) -eq $true){
                    Write-Host $item2.Name

                    $resultPart = New-Object PSCustomObject
                    $resultPart | Add-Member -type NoteProperty -Name Name -Value $item2.Name 

                    $ergebnis += $resultPart

                }
            }
        }
    }
    End
    {
     $ergebnis | Export-Csv -Path $Param3 -Delimiter ";" -NoTypeInformation   
    }
}

Wenn ich die Funktion in der ISE ausführe klappt es.

PS1 gespeichert und in der Powershell bekomme ich bei ".\Get-OwnClients.ps1 -" noch nichtmal die Parameterliste angezeigt.

Klimper ich die Parameter so ein passiert auch nix, nichtmal eine Fehlerausgabe.

  .\Get-OwnClients.ps1 -Param1 D:\temp2\Quelle_Namen.csv -Param2 D:\temp2\Quelle_Kuerzel.csv -Param3 d:\temp\ergebnis.csv

Woran liegt das?

Selbst wenn ich nur get-ownclients.ps1 ausführe meckert er noch nichtmal die fehlenden Parameter an. Obwohl die doch auf Mandatory stehen.

VG

Content-ID: 444838

Url: https://administrator.de/contentid/444838

Ausgedruckt am: 04.12.2024 um 08:12 Uhr

Kraemer
Lösung Kraemer 26.04.2019 um 13:46:17 Uhr
Goto Top
Moin,

du rufst di Funktion ja gar nicht auf.

Gruß
SeaStorm
Lösung SeaStorm 26.04.2019 um 14:02:08 Uhr
Goto Top
also im moment rufst du nur das Script auf, das dann eine Function deklariert. Aufgerufen wird diese allerdings nicht.
mayho33
Lösung mayho33 26.04.2019 aktualisiert um 14:08:23 Uhr
Goto Top
Ich würde die PS1 mal in ein PSM1 umwandeln und vorher einfach temporär importieren Import-Module .\Get-OwnClients.psm1

Danach die Methode aufrufen

oder...

das Function-Konstrukt einfach entfernen. Dann gehts auch so wie du es oben aufrufst
H41mSh1C0R
H41mSh1C0R 26.04.2019 um 14:21:52 Uhr
Goto Top
Zeit fürs Wochenende. *gg*

DS
mayho33
mayho33 26.04.2019 um 14:30:58 Uhr
Goto Top
Zitat von @H41mSh1C0R:

Zeit fürs Wochenende. *gg*

DS

Mitten ins Herz! Hab noch bis 19 Uhr -_-
H41mSh1C0R
H41mSh1C0R 26.04.2019 aktualisiert um 14:36:46 Uhr
Goto Top
Nur weil es Zeit fürs WE ist heißt das nicht das ich los kann. ;(

Meine Stechuhr sagt 18:50 Uhr ;(
mayho33
mayho33 26.04.2019 um 14:39:01 Uhr
Goto Top
Zwei arme Schweine im Mahlwerk des Wirtschafts-Kapitalismus. Hahahaha!