Benutzer mit den meisten Antworten
Format einer Zahl festlegen

Frage
-
Hallo,
ich möchte gerne in der Registry abfragen, ob ein bestimmter Key vorhanden ist. Der Name des Keys fängt immer gleich an, unterscheidet sich aber am Ende durch eine Zahl. Die Zahl fängt mit 01 an und endet bei 30. Wenn ich jetzt eine Schleife baue, dann fängt diese dummerweise mit 1 und nicht 01 an. Gibt es eine Möglichkeit das Zahlenformat festzulegen, so das sie immer zweistellig ist?
$i = 01 do { $i; $i++ Test-Path HKLM:\SOFTWARE\DPMA\swrp\$i } while ($i -le 30)
Freue mich auf Beiträge.
Liebe Grüße
Norbert
IT Berater
Antworten
-
z.b. so:
$i = 1 if ($i -lt 10) { $i = $i.ToString("0#") }
Du könntest auch den Format-parameter -f benutzen, aber dessen Systax ist IMHO sprerrig und wenig intuitiv.
Grüße, Denniver
Blog: http://bytecookie.wordpress.com
Kostenloser Powershell Snippet Manager v3: Link
(Schneller, besser + einfacher scripten.)
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.- Als Antwort markiert Denniver ReiningMVP, Moderator Samstag, 16. Mai 2015 23:09
-
So ganz verstehe ich das mit der Datei nicht, aber zumindest eine recht unkonventionelle Lösung. Ansonsten wie Denniver schon schrieb, kannst du den Format-Operator verwenden:
$RegKey = 'HKLM:\SOFTWARE\DPMA\swrp' for ($i=1; $i -le 30; $i++) { Test-Path (Join-Path $RegKey -ChildPath ("{0:d2}" -f $i)) }
Gruß
Joachim- Als Antwort markiert Denniver ReiningMVP, Moderator Samstag, 16. Mai 2015 23:09
Alle Antworten
-
z.b. so:
$i = 1 if ($i -lt 10) { $i = $i.ToString("0#") }
Du könntest auch den Format-parameter -f benutzen, aber dessen Systax ist IMHO sprerrig und wenig intuitiv.
Grüße, Denniver
Blog: http://bytecookie.wordpress.com
Kostenloser Powershell Snippet Manager v3: Link
(Schneller, besser + einfacher scripten.)
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.- Als Antwort markiert Denniver ReiningMVP, Moderator Samstag, 16. Mai 2015 23:09
-
Hallo,
dass wäre eine Möglichkeit. Ich habe mir aber erstmal damit geholfen, dass ich in eine Datei die Werte schreibe die ich brauche, diese Datei einlese und damit meine Abfragen mache. Funktioniert prima. Trotzdem würde mich interessieren ob es eine weitere Alternative gibt.
IT Berater
-
So ganz verstehe ich das mit der Datei nicht, aber zumindest eine recht unkonventionelle Lösung. Ansonsten wie Denniver schon schrieb, kannst du den Format-Operator verwenden:
$RegKey = 'HKLM:\SOFTWARE\DPMA\swrp' for ($i=1; $i -le 30; $i++) { Test-Path (Join-Path $RegKey -ChildPath ("{0:d2}" -f $i)) }
Gruß
Joachim- Als Antwort markiert Denniver ReiningMVP, Moderator Samstag, 16. Mai 2015 23:09
-
Über eine Datei. OK. :)
Es gibt natürlich immer verschiedene Möglichkeiten etwas zu tun: effiziente, weniger effiziente und umständliche. Die umständlichen Lösungen, sind logischerweise nicht empfehlenswert, fallen aber manchmal nicht sonderlich ins Gewicht, solange man kurze kleine Scripts schreibt oder die Datenmengen übersichtlich bleiben.
Es wird aber der Tag kommen, vielleicht nächste Woche, vielleicht nächstes Jahr, an dem du gefordert bist, ein großes und komplexes Script zu schreiben oder vielleicht ein kurzes, das aber Tausende oder gar Hunderttausende an Datensätzen flott und effizient verarbeiten soll oder gar beides zusammen. :)
Jedes kleine schnuckelige Script, jede Zeile Code die du jetzt schreibst ist eine Vorbereitung auf diesen Tag. Wenn dich jetzt mit ineffizienten "funktioniert ja"-Lösungen zufrieden gibst und nicht versuchst jede Aufgabe und sei sie noch so unbedeutend, so gut und effizient wie möglich zu lösen, wirst du an besagtem Tag auf die Nase fallen. Weil du nicht gelernt hast, wie es geht.
Das ist zumindest meine Erfahrung und Arbeitsphilosophie. Und die gilt übrigens egal ob du Anfänger oder Profi bist. Es gibt immer eine noch größere und komplexere Aufgabe die um die Ecke auf dich wartet.
Gruß, Denniver
Blog: http://bytecookie.wordpress.com
Kostenloser Powershell Snippet Manager v3: Link
(Schneller, besser + einfacher scripten.)
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.- Bearbeitet Denniver ReiningMVP, Moderator Montag, 11. Mai 2015 00:50