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

Printed on: December 12, 2024 at 01:12 o'clock

Kraemer
Solution Kraemer Apr 26, 2019 at 11:46:17 (UTC)
Goto Top
Moin,

du rufst di Funktion ja gar nicht auf.

Gruß
SeaStorm
Solution SeaStorm Apr 26, 2019 at 12:02:08 (UTC)
Goto Top
also im moment rufst du nur das Script auf, das dann eine Function deklariert. Aufgerufen wird diese allerdings nicht.
mayho33
Solution mayho33 Apr 26, 2019 updated at 12:08:23 (UTC)
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 Apr 26, 2019 at 12:21:52 (UTC)
Goto Top
Zeit fürs Wochenende. *gg*

DS
mayho33
mayho33 Apr 26, 2019 at 12:30:58 (UTC)
Goto Top
Zitat von @H41mSh1C0R:

Zeit fürs Wochenende. *gg*

DS

Mitten ins Herz! Hab noch bis 19 Uhr -_-
H41mSh1C0R
H41mSh1C0R Apr 26, 2019 updated at 12:36:46 (UTC)
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 Apr 26, 2019 at 12:39:01 (UTC)
Goto Top
Zwei arme Schweine im Mahlwerk des Wirtschafts-Kapitalismus. Hahahaha!