Jump to content

PS, Rat für write-host auf Bildschirm


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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

Link zu diesem Kommentar

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]

Link zu diesem Kommentar

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--
}

Link zu diesem Kommentar
$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?

Link zu diesem Kommentar

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--
}

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...