Jump to content

PS Skript - Prüfen ob Parameter leer ist


Direkt zur Lösung Gelöst von Cybquest,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo Forum!

 

Wie prüft man in der Powershell richtig, ob ein Parameter leer ist?

Param(
[string]$ComputerName,
[string]$File,
[string]$DriveLetter
)

Function auslesen {
[array]$volume=Get-WmiObject -Class Win32_Volume -Filter "DriveLetter='$DriveLetter'" -ComputerName $_
$capacity=$volume.Capacity/1gb
$freespace=$volume.FreeSpace/1gb
"Frei: {0:n2} GB, Gesamtgröße: {1:n2} GB, Computer: {2}" -f $freespace,$capacity,$_
}

#if ($DriveLetter -eq $null) {$DriveLetter="C:"}
if (($DriveLetter | Measure-Object -Character).Characters -eq 0) {$DriveLetter="C:"}
if (($ComputerName | Measure-Object -Character).Characters -ne 0) {$ComputerName | ForEach-Object {auslesen}}
if (($File | Measure-Object -Character).Characters -ne 0) {Get-Content $file | ForEach-Object {auslesen}}

Wichtig sind die letzten 4 Zeilen.

Bisher habe ich Variablen, die nicht per Skriptparameter daherkamen, immer so abgefragt wie in der auskommentierten Zeile. Wäre also $DriveLetter eine nicht definierte Variable, dann funktioniert das auch.

Da es aber ein Parameter ist, muss man anscheinend was anderes machen.

Ich habe es nun so hingebogen, dass ich die Zeichen zähle.

 

Aber ich denke da gibt es sicher eine richtigere Lösung, wie sieht die aus?

 

 

LG

bearbeitet von Mr_Marple
Link zu diesem Kommentar

@blub

Danke für die super Info!

Ist wirklich praktisch so. :cool:

 

 

@Cybquest

Oh Gott, so einfach ist das?! :schreck:

Hab ich in CMD Zeiten immer so gemacht. Wie bin ich davon nur abgekommen...

Danke jedenfalls!

 

Seltsam ist trotzdem dass es mit $null bei undefinierten Variablen trotzdem funktioniert.

 

 

Beitrag ist somit gelöst, danke!

 

LG


Oh, kann man hier nicht 2 Beiträge als Lösung markieren?

Schade!

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...