powershell mehrer fenster codieren?

2 Antworten

ich weiß nicht welchen Code Du Du geschrieben hast ergo kann ich Diesen auch nicht in meiner Demo verwenden.

...ich bin so frei einfach ein bereits verwendetes Script (klingt besser als "Code"🤢) als Basis zu verwenden.

...und 100mal zu starten... (also wer 100 Fenster Automatisch startet, führt nichts gutes im Schilde...)

Ich bin nett und meist freundlich, also belasse ich es bei 3 Instanzen.

erste Variante:

Start Powershell-Scriptblock-Variable als separate Instanzen aus einem Powershell-Script.

Demo.ps1

$myScriptBlock={
    function generateRnd {
        while($rnd.Length -lt $Cols) {
            [string]$rnd = $rnd + $(random -Minimum 1000000000 -Maximum 9999999999)
        };
        return $rnd.Substring(0,$Cols);
    };
    $Cols=80;
    $Lines=30;
    [console]::ForegroundColor = 'Green';
    [console]::BackgroundColor = 'Black';
    [console]::CursorVisible = $false;
    cls
    for (;;){
        if ((([console]::WindowWidth) -ne $Cols) -or ((([console]::WindowHeight) -ne $Lines))) {
            mode con cols=$Cols lines=$lines;
            for ($i=1;$i -le $Lines; $i++){echo $(generateRnd)};
        }
        echo $(generateRnd);
        sleep -m 50;
    }
}

  # das Script anzeigen
$myScriptBlock

  #3 mal das Script in einem Neuen Fenster  ausführen
for ($i=1;$i -le 3;$i++){
      #es dürfen  keine Doublquotes im Script verwendet werden!
    start-process powershell  -ArgumentList '-C',$myScriptBlock
    
}
sleep -s 10

Die Zweite (und meines Erachtens bessere) Variante...

Eine Hybrid-Batch... Eine etwas frisierte Batch Startet powershell mit einem kurzen Stub, der die Batch einliest und ausführt (der Trick dabei...die eigentliche Batch ist als Kommentar versteckt und wird nicht Kompiliert), auf dies Art bekommt man 2 verschiedene Scriptarten in eine Datei.

...Auch egal... wer 100 Fenster startet interessiert sich wohl kaum für die Hintergründe... (dabei könntest Du damit sogar Deinen Informatiklehrer beeindrucken)

Demo.cmd

<# : batch portion
@echo off 
  rem starte 3 Instanzen des angehängten  Powershell-Script
for /l %%a in (1,1,3) do (
    start "" "powershell" -noprofile "iex (${%~f0} | out-string)"
)
exit /b
: end batch / begin powershell #>


    function generateRnd {
        while($rnd.Length -lt $Cols) {
            [string]$rnd = $rnd + $(random -Minimum 1000000000 -Maximum 9999999999)
        };
        return $rnd.Substring(0,$Cols);
    };
    $Cols=80;
    $Lines=30;
    [console]::ForegroundColor = "Green";
    [console]::BackgroundColor = "Black";
    [console]::CursorVisible = $false;
    cls
    for (;;){
        if ((([console]::WindowWidth) -ne $Cols) -or ((([console]::WindowHeight) -ne $Lines))) {
            mode con cols=$Cols lines=$lines;
            for ($i=1;$i -le $Lines; $i++){echo $(generateRnd)};
        }
        echo $(generateRnd);
        sleep -m 50;
    }

...und wie auch schon in anderen Antworten...:

Unter den Beiträgen sind gewisse Knöpfe, auf die man bei Gefallen klicken kann...

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren