nagus
Goto Top

PowerShell Eingabe um führende Null ergänzen

Hi zusammen,

ich kämpfe gerade mit einem trivialen Problem:
Ich habe eine Eingabe die einstellig ist, die ich aber zweistellig mit führender Null benötige.

Gefunden habe ich die Funktion ToString und hier eine Erklärung von MS, aber ich schaffe es nicht diese richtig anzuwenden ....

Das wäre mein Ansatz gewesen:
$select = Read-Host -Prompt "Bitte den Monat als Zahl eingeben, für den das Script ausgeführt werden soll!"  
$test = $select.ToString("D2")  

Das ist dann die Fehlermeldung die ich erhalte
Für "ToString" und die folgende Argumenteanzahl kann keine Überladung gefunden werden: "1".  
In Zeile:2 Zeichen:1
+ $test = $select.ToString("D2")  
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) , MethodException
    + FullyQualifiedErrorId : MethodCountCouldNotFindBest

Was mache ich falsch?

Content-Key: 546847

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

Printed on: April 19, 2024 at 22:04 o'clock

Member: NetzwerkDude
Solution NetzwerkDude Feb 13, 2020 updated at 16:31:49 (UTC)
Goto Top
Der -f Paramer ist nützlich:
[int]$select = Read-Host -Prompt "Bitte den Monat als Zahl eingeben, für den das Script ausgeführt werden soll!"  
$zweistellig = "{0:d2}" -f $select  

funktioniert aber nicht für strings, d.h. die readhost ausgabe in zeile 1 gleich zu einem integer machen
In der zweiten zeile wird gesagt das man eine zahl gerne zweistellig hätte (d = "padding")

Mehr:
https://ss64.com/ps/syntax-f-operator.html
Member: Nagus
Nagus Feb 13, 2020 at 16:38:27 (UTC)
Goto Top
Vielen Dank - das funktioniert!
Zwei Fragen noch:
1. Das warum [Int] vor die Variable? Ich gebe ja nur ganzahlig ein
2. Wo findet man so einen sch... ??? -.-
Mitglied: 142970
142970 Feb 13, 2020 updated at 17:06:46 (UTC)
Goto Top
funktioniert aber nicht für strings
Dafür gibt es PadLeft
$select = Read-Host -Prompt "Bitte den Monat als Zahl eingeben, für den das Script ausgeführt werden soll!"  
$select.PadLeft(2,"0")  

1. Das warum [Int] vor die Variable? Ich gebe ja nur ganzahlig ein
Weil der Format-Operator in dem Fall einen Wert vom Typ Zahl und nicht String erwartet.
2. Wo findet man so einen sch... ??? -
.NET Framework lernen und das Powershell Handbuch lesen dann brauchst du das nicht mehr "finden" sondern weißt wie aus ersten Hand face-wink