Serversprache und Powershell Skripte
Hallo zusammen,
spielt es eine Rolle für PS Skripte in welche Sprache das Betriebssystem installiert ist (z.B. Server 2012 R2 in Deutsch) um diese korrekt auszuführen?
Viele Grüße,
Rudolf Kleinfelder
spielt es eine Rolle für PS Skripte in welche Sprache das Betriebssystem installiert ist (z.B. Server 2012 R2 in Deutsch) um diese korrekt auszuführen?
Viele Grüße,
Rudolf Kleinfelder
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 568005
Url: https://administrator.de/contentid/568005
Ausgedruckt am: 22.11.2024 um 17:11 Uhr
12 Kommentare
Neuester Kommentar
Nein.
Ileies
Ileies
Moin,
😮 ganz so einfach ist es nicht. Je nachdem was man tut, können die regional settings sehr wohl das Skript beeinflussen.
Als Beispiel:
Wandelt man einen Dezimalwert in eine Zeichenkette um (etwa um eine feste Anzahl Nachkommastellen zu erhalten), so wird der Dezimalpunkt bei deutschen Settings in ein Komma umgewandelt. Möchte man das ganze Später wieder umkehren, also zurück zu einem Dezimalwert, muss man vorher zwingend das Komma wieder durch einen Punkt ersetzen, sonst wird das Komma als 1000er-Trennzeichen interpretiert.
Gruß Thomas
Zitat von @138701:
Nein.
Nein.
😮 ganz so einfach ist es nicht. Je nachdem was man tut, können die regional settings sehr wohl das Skript beeinflussen.
Als Beispiel:
Wandelt man einen Dezimalwert in eine Zeichenkette um (etwa um eine feste Anzahl Nachkommastellen zu erhalten), so wird der Dezimalpunkt bei deutschen Settings in ein Komma umgewandelt. Möchte man das ganze Später wieder umkehren, also zurück zu einem Dezimalwert, muss man vorher zwingend das Komma wieder durch einen Punkt ersetzen, sonst wird das Komma als 1000er-Trennzeichen interpretiert.
Gruß Thomas
Stimmt - Vielleicht hätte der TO etwas ins Detail gehen können, zu welchem Zweck die Frage gestellt war.
Zitat von @TK1987:
Moin,
😮 ganz so einfach ist es nicht. Je nachdem was man tut, können die regional settings sehr wohl das Skript beeinflussen.
Als Beispiel:
Wandelt man einen Dezimalwert in eine Zeichenkette um (etwa um eine feste Anzahl Nachkommastellen zu erhalten), so wird der Dezimalpunkt bei deutschen Settings in ein Komma umgewandelt. Möchte man das ganze Später wieder umkehren, also zurück zu einem Dezimalwert, muss man vorher zwingend das Komma wieder durch einen Punkt ersetzen, sonst wird das Komma als 1000er-Trennzeichen interpretiert.
Moin,
Zitat von @138701:
Nein.
Nein.
😮 ganz so einfach ist es nicht. Je nachdem was man tut, können die regional settings sehr wohl das Skript beeinflussen.
Als Beispiel:
Wandelt man einen Dezimalwert in eine Zeichenkette um (etwa um eine feste Anzahl Nachkommastellen zu erhalten), so wird der Dezimalpunkt bei deutschen Settings in ein Komma umgewandelt. Möchte man das ganze Später wieder umkehren, also zurück zu einem Dezimalwert, muss man vorher zwingend das Komma wieder durch einen Punkt ersetzen, sonst wird das Komma als 1000er-Trennzeichen interpretiert.
Nö. Das klappt bei der PS problemlos:
PS E:\test> $zahl = 1.1
PS E:\test> $zahl
1,1
PS E:\test> [string]$string = $zahl
PS E:\test> $string
1.1
PS E:\test> $zahl = 1,1
PS E:\test> $zahl
1
1
PS E:\test> [decimal]$zahl = $string
PS E:\test> $zahl
1,1
PS E:\test> $zahl.gettype()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Decimal System.ValueType
PS E:\test> $String.gettype()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
Liebe Grüße
Erik
Das Date-Format im Deutschen: 27.04.2020
Im Englischen: 27/04/2020
Zeit: 14:36
Time: 2:36 PM
Um so etwas geht es.
Im Englischen: 27/04/2020
Zeit: 14:36
Time: 2:36 PM
Um so etwas geht es.
Nein, tut es nicht, wenn man wie ich oben geschrieben habe, die Zahl etwa mit festen Nachkommasstellen ausgibt
$Zahl=5.78545484
# Egal ob so:
$Text="{0:f4}" -f $Zahl
# oder so:
$Text=$Zahl.ToString('0.0000')
[decimal]$Text
57855
Zitat von @138701:
Das Date-Format im Deutschen: 27.04.2020
Im Englischen: 27/04/2020
Zeit: 14:36
Time: 2:36 PM
Um so etwas geht es.
Das Date-Format im Deutschen: 27.04.2020
Im Englischen: 27/04/2020
Zeit: 14:36
Time: 2:36 PM
Um so etwas geht es.
Das sollte beim Skriptablauf auch kein Problem darstellen. Da bestimmen die Formatangaben erstmal nur, wie das angezeigt, aber nicht wie es gespeichert wird.
PS E:\test> if($(get-date) -gt $(get-date -month 3)) {write-host "wahr"}
wahr
PS E:\test> if($(get-date -format "MMMM") -gt $(get-date -month 3)) {write-host "wahr"}
wahr
Zitat von @TK1987:
Nein, tut es nicht, wenn man wie ich oben geschrieben habe, die Zahl etwa mit festen Nachkommasstellen ausgibt
$Zahl=5.78545484
Nein, tut es nicht, wenn man wie ich oben geschrieben habe, die Zahl etwa mit festen Nachkommasstellen ausgibt
$Zahl=5.78545484
- Egal ob so:
- oder so:
ja gut, aber warum sollte ich das tun und nicht [math]::round oder ::floor oder ::ceiling nehmen?
Zitat von @erikro:
ja gut, aber warum sollte ich das tun und nicht [math]::round oder ::floor oder ::ceiling nehmen?
Hauptsächlich um Benutzereingaben abzufangen und auf Gültigkeit zu überprüfen, ansonsten würde man natürlich eher mit [math]::round() arbeiten.ja gut, aber warum sollte ich das tun und nicht [math]::round oder ::floor oder ::ceiling nehmen?
Spielt aber auch alles keine Rolle warum wieso weshalb, die Frage des TE war, ob regional settings unterschiedliche Auswirkungen haben können - und unter Umständen ist das eben so.
Gruß Thomas
WIe viele hier schon geschrieben haben ist es PS an sich egal welches Language das OS verwendet. Du willst aber eventuell ein bestimmtes Format bei der Ausgabe von z.B. DateTime.
Das kannst du z.B. so festlegen:
Oder du legst global die Culture fest. Siehe Beispiel:
https://devblogs.microsoft.com/scripting/use-culture-information-in-powe ...
Grüße!
Das kannst du z.B. so festlegen:
Get-Date -Format "yyyy.MM.dd HH:mm:ss"
Oder du legst global die Culture fest. Siehe Beispiel:
https://devblogs.microsoft.com/scripting/use-culture-information-in-powe ...
Grüße!