Batch/CMD-Fenster minimieren/maximieren?

3 Antworten

Wenn ich die Frage richtig interpretiere, geht das mittels shellexecute aus einem Skript heraus. Es würde(n) aber nicht ein und das selbe Fenster mal angezeigt und mal ausgeblendet, sondern Teile des skripts in einem versteckten und Teile des Skripts in einem sichtbaren CMD-Fenster abgearbeitet.

Die simpelste Lösung ist die aktuelle Batch neu zu starten, da du mit dem start-Befehl angeben kannst, ob etwas minimiert oder maximiert gestartet werden soll. Durch Sprungmarken kannst du die Ausführung an einer bestimmten Stelle fortsetzen lassen.

Hier mal eine Demonstration:

@echo off
if "%~1"=="min" goto minimized
if "%~1"=="max" goto maximized

:main
    echo Dies wird zu Beginn ausgeführt.
    timeout /t 3
    start "" /MIN %0 min
exit

:minimized
    echo Dies wird nach der Minimierung ausgeführt.
    timeout /t 3
    start "" /MAX %0 max
exit

:maximized
    echo Dies wird maximiert ausgeführt.
    pause
exit

Wenn das Fenster sich direkt nach dem starten minimieren soll, musst du das echo und timeout zu Beginn weglassen.

Ich hoffe ich konnte dir helfen :)

Für ein Bestehendes Consolenfenster gibt es mit Batch/VBScript/JScript keine Möglichkeit dieses zu verbergen, bzw wieder erscheinen zu lassen.

Mit Powershell/C# mit Verrenkungen über PInvoke. (absolut nichts für Anfänger , ein falscher Aufruf/Parameter und der Rechner wird vielleicht zum Mixer, Toaster oder Aktenvernichter🤣🤣🤣🤣🤣🤣)

Größenänderungen sind in gewissem Rahmen mit MODE CON[:] [COLS=c] [LINES=n] machbar.

mode von cols=10 lines=3
timeout 10
mode von cols=128 lines=50
pause

Ein vertrauenswürdiges Commandlinetool zum Steuern von Fenstern und Objekten ist Cmdow

https://ritchielawrence.github.io/cmdow/

Ich bin zwar kein Fan von Fremdtools für die Console, ...aber für Leute, welche nicht mit Systemcalls hantieren möchten, ist das kleine Consolprogramm perfekt...

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