lefg 276 Geschrieben 16. März 2012 Autor Melden Teilen Geschrieben 16. März 2012 Ich hab mich mal an die Hausaufgabe gemacht, hier das Ergebnis: #Hallo World mit while #Powershell Console Definieren #Console definieren $h=get-host #Console Farben $win = $h.UI.RawUI $Color = "Black","DarkBlue","DarkGreen","DarkCyan","DarkRed","DarkMagenta","DarkYellow","Gray","DarkGray","Blue","Green","Cyan","Red","Magenta","Yellow","White" $Color.Length $i=0 $j=15 while ($i -lt 16) { $win.BackgroundColor = $Color[$i] $win.ForegroundColor = $Color[$j] #Console Buffergrösse $win_buffersize=$win.buffersize $win_buffersize.height=5499 $win_buffersize.width=180 $h.ui.rawui.set_buffersize($win_buffersize) #Console Fenstergrösse $win_size=$win.windowsize $win_size.height=15 $win_size.width=180 $h.ui.rawui.set_windowsize($win_size) #Bereinigen des Bildschirms # clear-host #Prüfen ob Fehler gemeldet wurden (entspricht dem %errorlevel% aus MSDOS) $LastExitCode write-Host "Hello World" write-host $i $j read-host $i++ $j-- } Es gibt aber eine Fehlermeldung: Bei C:\1\Hallo.ps1:29 Zeichen:11+ $win_size. <<<< height=15 + CategoryInfo : InvalidOperation: (height:String) [], RuntimeException + FullyQualifiedErrorId : PropertyNotFound Die width-Eigenschaft wurde in diesem Objekt nicht gefunden. Stellen Sie sicher, dass sie vorhanden ist und festgelegt werden kann. Bei C:\1\Hallo.ps1:30 Zeichen:11 + $win_size. <<<< width=180 + CategoryInfo : InvalidOperation: (width:String) [], RuntimeException + FullyQualifiedErrorId : PropertyNotFound Das Argument "0" mit dem Wert "" für "set_WindowSize" kann nicht in den Typ "System.Management.Automation.Host.Size" konvertiert werden: "NULL kann nicht in den Typ "System.Manag ement.Automation.Host.Size" konvertiert werden." Bei C:\1\Hallo.ps1:31 Zeichen:27 + $h.ui.rawui.set_windowsize <<<< ($win_size) + CategoryInfo : NotSpecified: (:) [], MethodException + FullyQualifiedErrorId : MethodArgumentConversionInvalidCastArgument Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 16. März 2012 Autor Melden Teilen Geschrieben 16. März 2012 Hier die zweite Version: [#HalloWorld2.ps1 mit do-while #Powershell Console Definieren #Console definieren $h=get-host #Console Farben $win = $h.UI.RawUI $Color = "Black","DarkBlue","DarkGreen","DarkCyan","DarkRed","DarkMagenta","DarkYellow","Gray","DarkGray","Blue","Green","Cyan","Red","Magenta","Yellow","White" $Color.Length $i=0 $j=15 do { $win.BackgroundColor = $Color[$i] $win.ForegroundColor = $Color[$j] #Console Buffergrösse $win_buffersize=$win.buffersize $win_buffersize.height=5499 $win_buffersize.width=180 $h.ui.rawui.set_buffersize($win_buffersize) #Console Fenstergrösse $win_size=$win.windowsize $win_size.height=15 $win_size.width=180 $h.ui.rawui.set_windowsize($win_size) #Bereinigen des Bildschirms # clear-host #Prüfen ob Fehler gemeldet wurden (entspricht dem %errorlevel% aus MSDOS) $LastExitCode write-Host "Hello World" write-host $i $j read-host $i++ $j-- } while ($i -lt 16)/CODE] Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 16. März 2012 Autor Melden Teilen Geschrieben 16. März 2012 Die nächste: #HalloWorld mit for #Powershell Console Definieren #Console definieren $h=get-host #Console Farben $win = $h.UI.RawUI $Color = "Black","DarkBlue","DarkGreen","DarkCyan","DarkRed","DarkMagenta","DarkYellow","Gray","DarkGray","Blue","Green","Cyan","Red","Magenta","Yellow","White" $Color.Length $j=15 for ($i=0; $i -lt 16; $i++) { $win.BackgroundColor = $Color[$i] $win.ForegroundColor = $Color[$j] #Console Buffergrösse $win_buffersize=$win.buffersize $win_buffersize.height=5499 $win_buffersize.width=180 $h.ui.rawui.set_buffersize($win_buffersize) #Console Fenstergrösse $win_size=$win.windowsize $win_size.height=15 $win_size.width=180 $h.ui.rawui.set_windowsize($win_size) #Bereinigen des Bildschirms # clear-host #Prüfen ob Fehler gemeldet wurden (entspricht dem %errorlevel% aus MSDOS) $LastExitCode write-Host "Hello World" write-host $i $j read-host $j-- } Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 16. März 2012 Melden Teilen Geschrieben 16. März 2012 $Color = "Black","DarkBlue","DarkGreen","DarkCyan","DarkRed","DarkMagenta","DarkYellow","Gray","DarkGray","Blue","Green ","Cyan","Red","Magenta","Yellow","White" sowas is fad. Die Liste will ich von der PS selbst geliefert bekommen ;) Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 16. März 2012 Autor Melden Teilen Geschrieben 16. März 2012 Und hier mit foreach: # $Color = "Black","DarkBlue","DarkGreen","DarkCyan","DarkRed","DarkMagenta","DarkYellow","Gray","DarkGray","Blue","Green","Cyan","Red","Magenta","Yellow","White" foreach ($element in $color) { write-host $element } read-host Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 16. März 2012 Autor Melden Teilen Geschrieben 16. März 2012 $Color = "Black","DarkBlue","DarkGreen","DarkCyan","DarkRed","DarkMagenta","DarkYellow","Gray","DarkGray","Blue","Green ","Cyan","Red","Magenta","Yellow","White" sowas is fad. Die Liste will ich von der PS selbst geliefert bekommen ;) Ich hätte es ja ahnen müssen, Du machst es mir nicht einfach. :) Ich müsste es also die Synopsis von write-host auslesen? Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 16. März 2012 Melden Teilen Geschrieben 16. März 2012 nnnene, Du sollst die Werte der .Net Klasse [system.ConsoleColor] auflisten (=Enum erieren) Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 18. März 2012 Autor Melden Teilen Geschrieben 18. März 2012 nnnene,Du sollst die Werte der .Net Klasse [system.ConsoleColor] auflisten (=Enum erieren) Da ich keinen blassen Schimmer, habe ich googled und gefunden: [system.Enum]::GetNames([system.ConsoleColor]) Ich werde das mal in ein Skript einbauen. Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 18. März 2012 Autor Melden Teilen Geschrieben 18. März 2012 Hier das Skript; ist das eine befriedigende Lösung zur Stellung der Aufgabe? #HalloWorld_5.ps1 #Powershell Console Definieren #Console definieren $h=get-host #Console Farben $win = $h.UI.RawUI $i=0 $j=15 while ($i -lt 16) { $win.BackgroundColor = [system.Enum]::GetNames([system.ConsoleColor])[$i] $win.ForegroundColor = [system.Enum]::GetNames([system.ConsoleColor])[$j] #Console Buffergrösse $win_buffersize=$win.buffersize $win_buffersize.height=5499 $win_buffersize.width=180 $h.ui.rawui.set_buffersize($win_buffersize) #Console Fenstergrösse $win_size=$win.windowsize $win_size.height=15 $win_size.width=180 $h.ui.rawui.set_windowsize($win_size) #Bereinigen des Bildschirms clear-host #Prüfen ob Fehler gemeldet wurden (entspricht dem %errorlevel% aus MSDOS) $LastExitCode write-Host $i $win.BackgroundColor write-host $j $win.ForegroundColor write-Host "Hello World" read-host $i++ $j-- } Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.