Benutzer mit den meisten Antworten
Wo liegt der Fehler? (For-Schleife)

Frage
-
Hey meine Schleife funktioniert nicht kann mir da jemand weiterhelfen?
$anschaffungswert, $anfangswert = Read-Host $nutzungsdauer = Read-Host "Anschaffungswert: $anschaffungswert "Nutzungsdauer: $nutzungsdauer for ($nutzungsdauer; $nutzungsdauer lt 2; $nutzungsdauer--) { Write-Host "$nutzungsdauer" }
Antworten
-
$Anschaffung = $RestWert = 10401.46 $Nutzungsdauer = 5 $Abschreibung = $Anschaffung / $Nutzungsdauer Write-Host "Anschaffungswert: $Anschaffung Nutzungsdauer: $Nutzungsdauer Jahre" $Head = "Jahr Wert Abschreibung Restwert" Write-Host $Head`n$("=" * $Head.Length) for ($i = $Nutzungsdauer; $i -ge 1; $i--) { if ($i -eq 1) { $Abschreibung = ((1 - $Abschreibung) * -1) } "{0} {1,14:#,0.00} {2,14:#,0.00} {3,14:#,0.00}" -f $i, $RestWert, $Abschreibung, ($RestWert = $RestWert - $Abschreibung) } "{0} {1,14:#,0.00}" -f $i, $RestWert
Beste Gruesse
brima- Als Antwort markiert Denniver ReiningMVP, Moderator Sonntag, 22. Dezember 2013 00:34
Alle Antworten
-
Du hast bei dem lt den Bindestrich vergessen!
Siehe unbedingt hier: http://www.colorconsole.de/PS_Windows/de/about_Comparison_Operators.htm
$anschaffungswert, $anfangswert = Read-Host $nutzungsdauer = Read-Host "Anschaffungswert: $anschaffungswert "Nutzungsdauer: $nutzungsdauer for ($nutzungsdauer; $nutzungsdauer -lt 2; $nutzungsdauer--) { Write-Host "$nutzungsdauer" }
Da wir nicht wissen was bei den beiden Read-Host eingegeben wird können wir die schlecht helfen.
Da du in deiner Schleife -- benutzt nehme ich mal an das du hier nicht -lt (für Kleiner als) meinst sonder -gt (für größer als)
$anschaffungswert, $anfangswert = 12 $nutzungsdauer = 9 "Anschaffungswert: $anschaffungswert Nutzungsdauer: $nutzungsdauer" for ($nutzungsdauer; $nutzungsdauer -gt 2; $nutzungsdauer--) { Write-Host "$nutzungsdauer" }
PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
auf der deutschsprachigen PowerShell Community
Mein 21 Teiliger PowerShell Video Grundlehrgang
Deutsche PowerShell Videos auf Youtube
Folge mir auf:
Twitter | Facebook | Google+ -
so hab ich es gemacht aber ich möchte das es ungefähr so aussieht:
Also die Nutzungsjahre von 34 Abwärts dann den Anfangswert anzeigen dann die Abschreibung und diese dan von den Anfangswert abziehen = Restwert und dan den Restwert als Anfangswert für das i.d.F. 33 Jahr ausgeben -
$anschaffungswert, $anfangswert = Read-Host #z.B. 5000 $nutzungsdauer = Read-Host #z.B. 34 "Anschaffungswert: $anschaffungswert Nutzungsdauer:$nutzungsdauer" for ($nutzungsdauer; $nutzungsdauer -lt 2; $nutzungsdauer--) { Write-Host "$nutzungsdauer" } $abschreibung = $anschaffungswert/$nutzungsdauer "Abschreibung: $abschreibung" $Restwert=$anfangswert - $abschreibung "Restwert: $Restwert"
-
Hallo,
Peter hat doch schon gesagt dass du nicht -lt sondern wohl groesser meinst -gt , deine FOR-Schleife funktioniert nicht, den er gibt die Nutzungsdauer nicht aus.
for ($nutzungsdauer; $nutzungsdauer -lt 2; $nutzungsdauer--) bedeutet das die Schleife solange laufen soll, wie deine Nutzungsdauer kleiner ist wie 2, in deinem Beispiel verwendest du 34 und 34 ist nicht kleiner wie 2 sondern groesser, deshalb wird die Forschleife nich ausgefuehrt!
Beste Gruesse
brima -
Hallo,
ich glaube Du willst so was in der Form:
$Anschaffung = $RestWert = 1000 $Nutzungsdauer = 5 $Abschreibung = $Anschaffung / $Nutzungsdauer "AnfangsWert: $Anschaffung" for ($i = 1; $i -lt $Nutzungsdauer; $i++) { "RestWert: {0,10:#,0.00} Abschreibung: {1,10:#,0.00} RestWert: {2,10:#,0.00}" -f $RestWert, $Abschreibung, ($RestWert = $RestWert - $Abschreibung) } "RestWert: $RestWert"
AnfangsWert: 1000
RestWert: 1.000,00 Abschreibung: 200,00 RestWert: 800,00
RestWert: 800,00 Abschreibung: 200,00 RestWert: 600,00
RestWert: 600,00 Abschreibung: 200,00 RestWert: 400,00
RestWert: 400,00 Abschreibung: 200,00 RestWert: 200,00
RestWert: 200
Beste Gruesse
brima
- Bearbeitet brima Donnerstag, 12. Dezember 2013 11:29
-
Aber so ganz funktioniert das nicht.. das einzige was noch fehlt ist wie ich den Anfangswert - den Restwert mache sodass dieses Ergebnis in Jahr 2 steht.
[int]$Anschaffung = $Read-Host [int]$nutzungsdauer = Read-Host $abschreibung = $Anschaffung / $nutzungsdauer Write-Host "Anfangswert: $Anschaffung" for ($nutzungsdauer; $nutzungsdauer -gt 0; $nutzungsdauer--) { Write-Host "NutzungsjahrAnfangswertAbschreibung Restwert $nutzungsdauer $anschaffungswert $abschreibung $restwert #also alles untereinander eine art tabelle }
-
Hallo,
jetzt hast du hier wieder Code gepostet der nicht funktionieren kann, $Read-Host gibt es zum Beispiel nicht.Vorschlag:
Poste doch einfach mal ein Beispiel, wie es aus sehen soll!
Beste Gruesse
brima
$Anschaffung = $RestWert = 1000 $AnschaffungsJahr = 2013 $Nutzungsdauer = 5 $Abschreibung = $Anschaffung / $Nutzungsdauer $Head = "Jahr Wert Abschreibung Restwert" Write-Host $Head`n$("=" * $Head.Length) "{0} {1,14:#,0.00}" -f $AnschaffungsJahr, $Anschaffung for ($i = 1; $i -lt $Nutzungsdauer; $i++) { "{0} {1,14:#,0.00} {2,14:#,0.00} {3,14:#,0.00}" -f ++$AnschaffungsJahr, $RestWert, $Abschreibung, ($RestWert = $RestWert - $Abschreibung) } "{0} {1,14:#,0.00}" -f ++$AnschaffungsJahr, $RestWert
Jahr Wert Abschreibung Restwert
=================================================
2013 1.000,00
2014 1.000,00 200,00 800,00
2015 800,00 200,00 600,00
2016 600,00 200,00 400,00
2017 400,00 200,00 200,00
2018 200,00- Bearbeitet brima Freitag, 13. Dezember 2013 08:58
-
So sollte es aussehen:
Anschaffungswert: xxxxx,xx Nutzungsdauer: xx Jahre
Nutzungsjahr Anfangswert Abschreibung Restwert
Z.B. 30 z.b. 5000,00 xxx,xx x.xxx,xx
29 xxxx,xx xxx,xx x.xxx,xx
28 .....
und bei Nutzungsjahr 1 wird ja glaub ich 1 Euro oder wars beim ersten Nutzungsjahr? :-) Abgezogen
-
$Anschaffung = $RestWert = 10401.46 $Nutzungsdauer = 5 $Abschreibung = $Anschaffung / $Nutzungsdauer Write-Host "Anschaffungswert: $Anschaffung Nutzungsdauer: $Nutzungsdauer Jahre" $Head = "Jahr Wert Abschreibung Restwert" Write-Host $Head`n$("=" * $Head.Length) for ($i = $Nutzungsdauer; $i -ge 1; $i--) { if ($i -eq 1) { $Abschreibung = ((1 - $Abschreibung) * -1) } "{0} {1,14:#,0.00} {2,14:#,0.00} {3,14:#,0.00}" -f $i, $RestWert, $Abschreibung, ($RestWert = $RestWert - $Abschreibung) } "{0} {1,14:#,0.00}" -f $i, $RestWert
Beste Gruesse
brima- Als Antwort markiert Denniver ReiningMVP, Moderator Sonntag, 22. Dezember 2013 00:34
-
Hallo,
das hier Schritt fuer Schritt zu erklaeren wuerde IMHO zu weit gehen. Es geht hier eher um die Hilfesstellung bei Problemen mit der PowerShell, nicht um das grundsaetzliche erlernen.
Das Thema PowerShell, oder auch Programmieren im alllgemeinen scheint neu fuer dich zu sein, da hilft immer ein gutes Buch weiter. Siehe die Links
im Beitrag von Peter Kriegel, dort gibt es entps. Empfehlungen und er hat auch z.B.: einen schoenen Videokurs auf YouTube.
Und beachte bitte auch folgenden Forenbeitrag.Antworten makieren
Beste Gruess
brima