lefg 276 Geschrieben 16. März 2012 Autor Melden 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
lefg 276 Geschrieben 16. März 2012 Autor Melden 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]
lefg 276 Geschrieben 16. März 2012 Autor Melden 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-- }
blub 115 Geschrieben 16. März 2012 Melden 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 ;)
lefg 276 Geschrieben 16. März 2012 Autor Melden 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
lefg 276 Geschrieben 16. März 2012 Autor Melden 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?
blub 115 Geschrieben 16. März 2012 Melden Geschrieben 16. März 2012 nnnene, Du sollst die Werte der .Net Klasse [system.ConsoleColor] auflisten (=Enum erieren)
lefg 276 Geschrieben 18. März 2012 Autor Melden 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.
lefg 276 Geschrieben 18. März 2012 Autor Melden 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-- }
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden