locked
Powershell | Parameter als Param übergeben RRS feed

  • Frage

  • Hallo zusammen,

    ich habe zu dem Thema bereits recherchiert komme aber aktuell nicht wirklich weiter.

    Und zwar muss ich für ein Skript den Parameter "-Recurse" für "Get-Childitem" Optional ermöglichen. Wenn ich Recurse jetzt nicht angebe dann erhalte ich die Meldung das die Variable nicht $null sein darf. Wenn ich der Variable einen Wert über einen Default Wert eingebe dann bekomme ich die Meldung dass das Argument Recurse nicht akzeptiert wird.


    Hier mein Beispiel:

    Param(
        # Zeit
        [string]$hours = "-3",
        # Pfad Angabe
        [string]$path = "C:\Users\TestVM\Desktop\tinc",
        # Dateien oder Ordner
        [string]$type,
        #Rekursiv?
        [Parameter(Mandatory=$false)][String]$recurse = "-Recurse"
    )
    
    $recurse = @{
    Recurse = $true
    }
    
    if($recurse -eq $null)
    {
    $recurse = " "
    }
    else
    {
    $recurse = -Recurse
    }
    
    Get-ChildItem -Path $path $type $recurse | Where-Object {$_.LastWriteTime -lt ((Get-Date).AddHours($hours))}

    Wie bekomme ich es hin das Recurse beim Skript Aufruf Optional bleibt?

    Mit besten Grüßen

    Rafael

    Dienstag, 22. Mai 2018 12:23

Alle Antworten

  • Wie wäre es mit

    [switch]$Recurse


    Wenn dir meine Antwort nützt, kannst du "Als Antwort vorschlagen" anklicken. Warum? Das steht hier.

    Dienstag, 22. Mai 2018 13:04
  • Hi,

    wenn ich

    [switch]$recurse

    setze und dann ein false bekomme dann gibt mir das skript garnichts aus. Also:

    Get-ChildItem $path -> Zeigt den Ordnerinhalt an

    Get-ChildItem $path $recurse -> Zeigt nichts an ($recurse steht auf false)

    Danke

    Dienstag, 22. Mai 2018 13:51
  • Meine Antwort war nur ein Denkanstoß. Bitte lies about_functions.

    Wenn dir meine Antwort nützt, kannst du "Als Antwort vorschlagen" anklicken. Warum? Das steht hier.

    Dienstag, 22. Mai 2018 13:57