emeriks
Goto Top

PowerShell - Deklarierung von Eigenschaften eines PSObject mit festen Datentypen

Hi,
wenn ich in PowerShell einer Variable einen festen Datentyp zuweisen will, dann geht das z.B. so
[datetime]$c = [datetime]::MinValue
$c = "01.01.2000"  # --> wird in DateTime konvertiert 
$c = "abc"  # --> liefert Fehler --> so will ich es haben 

Wie kann ich gleiches bei den Eigenschaften eines PSObject erreichen?

Folgendes funktioniert nicht:
$c = New-Object PSObject -Property @{
  [datetime]Value = [datetime]::MinValue
}
Da meckert er das erste "[datetime]" an. VS Code meldet:
Operator "=" fehlt nach einem Schlüssel im Hashliteral.

Folgendes funktioniert teilweise:
$c = New-Object PSObject -Property @{
  Value = [datetime]::MinValue
}
Initial ist der Datentyp von $c.Value jetzt "DateTime".
Aber
$c.Value = "01.01.2000"   # --> das ändert den Datentyp der Eigenschaft "Value" auf "String"  
$c.Value = "abc"  # --> das nimmt er auch an --> Das will ich aber nicht. 

E.

Content-ID: 930390355

Url: https://administrator.de/forum/powershell-deklarierung-von-eigenschaften-eines-psobject-mit-festen-datentypen-930390355.html

Ausgedruckt am: 31.03.2025 um 15:03 Uhr

148934
Lösung 148934 07.07.2021 um 09:24:03 Uhr
Goto Top
Erstelle eine Klasse und erzeuge eine Instanz davon
https://docs.microsoft.com/de-de/powershell/module/microsoft.powershell. ...
emeriks
emeriks 07.07.2021 aktualisiert um 09:35:11 Uhr
Goto Top
@148934
Ja, danke. Exakt. Habe es gerade selbst gefunden. Danke trotzdem!

Class Test1 {
  [datetime]$Value = [datetime]::MinValue
}

[Test1]$c = New-Object Test1
$c.Value = "01.01.2000"   # --> konvertiert in DateTime  
$c.Value = "abc"  # liefert Fehler --> so will ich es haben