36539
28.05.2007, aktualisiert am 18.10.2012
39500
7
0
Bildschirmposition dem Ausgabefenster einer Batch vorgeben
Hallo,
in Zusammenhang mit Ausgabefenster fuer lange Zeichenketten habe ich Fragen.
Ich wollte nicht im Thread dazwischen posten.
Der mode-Befehl ist mir bisher nur bekannt als "mode x,y" (x= Breite, y= Länge des Ausgabefensters)
Die Variante von bastla mit "mode con cols=x" (x=zahl) aus obigem Thread kannte ich bisher nicht (funktioniert einwandfrei)
Generelles Problem:
Ich habe noch keine Lösung für die Festlegung der Bildschirmposition eines Batch-Ausgabefensters.
1.
Was bewirkt die Angabe "con cols=200" genau?
Ist es Zufall oder öffnet sich damit ein Batchfenster immer annähernd genau in Vollbild?
Bei mir ist es ca. 8mm breiter als Vollbild.
2.
Die Ausgabefenster einer Batch öffnen standardmäßig bei jedem Neustart an anderer Bildschirm-Position.
Gibt es einen Befehl mit der ich dem Ausgabefenster einer Batch die Bildschirmposition fest vorgeben kann?
Danke
gruß
onegasee59
in Zusammenhang mit Ausgabefenster fuer lange Zeichenketten habe ich Fragen.
Ich wollte nicht im Thread dazwischen posten.
Der mode-Befehl ist mir bisher nur bekannt als "mode x,y" (x= Breite, y= Länge des Ausgabefensters)
Die Variante von bastla mit "mode con cols=x" (x=zahl) aus obigem Thread kannte ich bisher nicht (funktioniert einwandfrei)
Generelles Problem:
Ich habe noch keine Lösung für die Festlegung der Bildschirmposition eines Batch-Ausgabefensters.
1.
Was bewirkt die Angabe "con cols=200" genau?
Ist es Zufall oder öffnet sich damit ein Batchfenster immer annähernd genau in Vollbild?
Bei mir ist es ca. 8mm breiter als Vollbild.
2.
Die Ausgabefenster einer Batch öffnen standardmäßig bei jedem Neustart an anderer Bildschirm-Position.
Gibt es einen Befehl mit der ich dem Ausgabefenster einer Batch die Bildschirmposition fest vorgeben kann?
Danke
gruß
onegasee59
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 60008
Url: https://administrator.de/contentid/60008
Ausgedruckt am: 26.11.2024 um 22:11 Uhr
7 Kommentare
Neuester Kommentar
Hallo onegasee59!
Eine Möglichkeit zur exakten Positionierung (und auch Größenvorgabe) findest Du im Systemmenü des CMD-Fensters (Register "Layout"). Wenn Du bei der Bestätigung Deiner Einstellungen "Eigenschaften gelten für alle Fenster mit gleichem Namen" wählst, sollte die Position/Größe damit auch für die Zunkunft fixiert sein.
Für manuell aufzurufende Konsolenfenster kannst Du eine Verknüpfung zur "%windir%\System32\cmd.exe" erstellen und in den Eigenschaften der Verknüpfung ebenfalls "Layout"-Einstellungen vornehmen.
Grüße
bastla
Was bewirkt die Angabe "con cols=200" genau?
... ist nur die ausführlichere Schreibweise zur Festlegung der "Spaltenanzahl", also der Anzahl von Zeichen je Zeile oder der "Breite"; siehe auch die Hilfe zu "mode".Ist es Zufall oder öffnet sich damit ein Batchfenster immer annähernd genau in Vollbild?
Nur eine Annahme (Biber wird es natürlich genau wissen ): Wenn aufgrund der eingestellten Schrift und der vorgegebenen Zeichenanzahl das Fenster zu breit wäre, wird es auf die von Dir beschriebene (annähernd Vollbild-) Größe (mit horizontalem Scrollbalken) gesetzt.Eine Möglichkeit zur exakten Positionierung (und auch Größenvorgabe) findest Du im Systemmenü des CMD-Fensters (Register "Layout"). Wenn Du bei der Bestätigung Deiner Einstellungen "Eigenschaften gelten für alle Fenster mit gleichem Namen" wählst, sollte die Position/Größe damit auch für die Zunkunft fixiert sein.
Für manuell aufzurufende Konsolenfenster kannst Du eine Verknüpfung zur "%windir%\System32\cmd.exe" erstellen und in den Eigenschaften der Verknüpfung ebenfalls "Layout"-Einstellungen vornehmen.
Grüße
bastla
Moin!
Nachdem mir Bastla den Anstoss in die richtige Richtung gegeben hat, hab ich damit nun ein bischen experimentiert. Schriftgroesse usw. wurden nicht veraendert:
---
Zu Frage 1:
Also der komplette Befehl fuer die Fenstergrossenangabe lautet:
mode con cols=80 lines=25
Das ist zugleich auch die Standardgroesse des Shellfensters.
wenn man nur cons=80 angibt, dann gilt diese Zahl auch fuer die Lines.
cols=80 bedeutet, dass die Zeile 80 Zeichen lang ist.
Bei 1024x768 waere cons=128 Bildschirmfuellend:
128x8=1024.
Bei 1600x1200 waeren es cols=200.
200x8=1600
Um den Scrollbalken auf der rechten Seite zu entfernen, musst du lines mitangeben.
1024x768:
768:16=59
Naja, nicht ganz richtig. Aber bei mir ist 59 die maximale Zeilenanzahl ohne den rechten Scrollbalken.
Fullscreen
mode con cols=128 lines=59 bei 1024x678
mode con cols=200 lines=95 bei 1600x1200
---
zu Frage 2:
Nun braeuchte man noch den passenden Befehl fuer Vollbild...
Das Fenster oeffnet sich wie schon erwaehnt immer wo anders...
mit nircmd und dem Befehl "nircmd win [action] [Additional Parameters]" koennte man es vielleicht schaffen.
Beispiel fuer den IE:
nircmd win setsize class "IEFrame" 50 50 400 300
Da das Shellfenster kein normales Windowsfenster ist wird das wohl nicht funktionieren...
Genauso wenig ist es moeglich das Shellfenster mit diversen Hilfen in den System-Tray zu minimieren...
Doch das hier funktioniert
nircmd win center class "ConsoleWindowClass" zum Zentrieren des Fensters
nircmd win max class "ConsoleWindowClass" zum Maximieren des Fensters
Grüsse,
wobleibtdiezeit
Nachdem mir Bastla den Anstoss in die richtige Richtung gegeben hat, hab ich damit nun ein bischen experimentiert. Schriftgroesse usw. wurden nicht veraendert:
---
Zu Frage 1:
Also der komplette Befehl fuer die Fenstergrossenangabe lautet:
mode con cols=80 lines=25
Das ist zugleich auch die Standardgroesse des Shellfensters.
wenn man nur cons=80 angibt, dann gilt diese Zahl auch fuer die Lines.
cols=80 bedeutet, dass die Zeile 80 Zeichen lang ist.
Bei 1024x768 waere cons=128 Bildschirmfuellend:
128x8=1024.
Bei 1600x1200 waeren es cols=200.
200x8=1600
Um den Scrollbalken auf der rechten Seite zu entfernen, musst du lines mitangeben.
1024x768:
768:16=59
Naja, nicht ganz richtig. Aber bei mir ist 59 die maximale Zeilenanzahl ohne den rechten Scrollbalken.
Fullscreen
mode con cols=128 lines=59 bei 1024x678
mode con cols=200 lines=95 bei 1600x1200
---
zu Frage 2:
Nun braeuchte man noch den passenden Befehl fuer Vollbild...
Das Fenster oeffnet sich wie schon erwaehnt immer wo anders...
mit nircmd und dem Befehl "nircmd win [action] [Additional Parameters]" koennte man es vielleicht schaffen.
Beispiel fuer den IE:
nircmd win setsize class "IEFrame" 50 50 400 300
Da das Shellfenster kein normales Windowsfenster ist wird das wohl nicht funktionieren...
Genauso wenig ist es moeglich das Shellfenster mit diversen Hilfen in den System-Tray zu minimieren...
Doch das hier funktioniert
nircmd win center class "ConsoleWindowClass" zum Zentrieren des Fensters
nircmd win max class "ConsoleWindowClass" zum Maximieren des Fensters
Grüsse,
wobleibtdiezeit
Hallo onegasee59
cmdow ist Gold wert. Die Examples auf deren Website ebenso. Und die cmd /? ist leicht zu verstehen. So macht das Spass.
Deine vbs = cmdow:
cmdow /run /hid c:\test.cmd
Die Lösung zur Frage 2:
::----- cmdow - Fenster verschieben und neuen Namen geben.bat -----
cmdow %systemroot%\system32\cmd.exe /mov 100 200 /ren "* %~n0 *" /act
@echo off
echo.
pause
::-----
Was ich schon immer haben wollte und mit cmdow nun funktioniert:
::----- cmdow - Fenster Infos.bat -----
@echo off
cmdow %systemroot%\system32\cmd.exe /mov 100 200 /ren "* %~n0 *" /act
echo.
echo * details of only the windows listed on the taskbar *
echo.
cmdow /t
echo.
pause
cls
echo.
echo * details and positions of only the windows listed on the taskbar *
echo.
cmdow /t /p
echo.
pause
cls
if exist "%temp%\cmdow - details of all windows.txt" del /f /q "%temp%\cmdow - details of all windows.txt"
echo * details of all windows * > "%temp%\cmdow - details of all windows.txt"
echo. >> "%temp%\cmdow - details of all windows.txt"
cmdow >> "%temp%\cmdow - details of all windows.txt"
start notepad "%temp%\cmdow - details of all windows.txt"
goto :eof
::-----
Gruesse,
wobleibtdiezeit
cmdow ist Gold wert. Die Examples auf deren Website ebenso. Und die cmd /? ist leicht zu verstehen. So macht das Spass.
Deine vbs = cmdow:
cmdow /run /hid c:\test.cmd
Die Lösung zur Frage 2:
::----- cmdow - Fenster verschieben und neuen Namen geben.bat -----
cmdow %systemroot%\system32\cmd.exe /mov 100 200 /ren "* %~n0 *" /act
@echo off
echo.
pause
::-----
Was ich schon immer haben wollte und mit cmdow nun funktioniert:
::----- cmdow - Fenster Infos.bat -----
@echo off
cmdow %systemroot%\system32\cmd.exe /mov 100 200 /ren "* %~n0 *" /act
echo.
echo * details of only the windows listed on the taskbar *
echo.
cmdow /t
echo.
pause
cls
echo.
echo * details and positions of only the windows listed on the taskbar *
echo.
cmdow /t /p
echo.
pause
cls
if exist "%temp%\cmdow - details of all windows.txt" del /f /q "%temp%\cmdow - details of all windows.txt"
echo * details of all windows * > "%temp%\cmdow - details of all windows.txt"
echo. >> "%temp%\cmdow - details of all windows.txt"
cmdow >> "%temp%\cmdow - details of all windows.txt"
start notepad "%temp%\cmdow - details of all windows.txt"
goto :eof
::-----
Gruesse,
wobleibtdiezeit
Hallo nochmal.
Biber verwieß noch auf diesen Link: BATCH - .BAT zeigt maximal nur ca.150 Zeilen an.
Dabei sind mir ein paar ungereimtheiten aufgefallen, die ich noch gern geklaert haette und die in der Batch dargestellt werden.
EDIT: Ich hoffe meine Frage aus dem zweiten Screen hatte noch keiner geselen. Ich bin in der Zeile verrutscht und berichtete ueber angebliche 69 Zeilen...
Gruesse
wobleibtdiezeit
Biber verwieß noch auf diesen Link: BATCH - .BAT zeigt maximal nur ca.150 Zeilen an.
Dabei sind mir ein paar ungereimtheiten aufgefallen, die ich noch gern geklaert haette und die in der Batch dargestellt werden.
@echo off
cls
echo.
echo *** Suchen nach urspruenglichen cols und lines Werten ***
echo.
for /f "tokens=2" %%i in ('mode con^|find "Spalten"') do set oldcols=%%i
for /f "tokens=2" %%i in ('mode con^|find "Zeilen"') do set oldlines=%%i
echo Momentaner Wert von cols (Spalten) = %oldcols%
echo Momentaner Wert von lines (Zeilen) = %oldlines%
echo.
echo ?!? Das Fenster hat die Standardhoehe von 25 Zeilen ?!?
echo ?!? Der Scrollbalken geht aber runter bis auf Zeile 300 ?!?
echo.
set dummychoice=
set /p dummychoice= [ENTER]
mode con cols=128 lines=59
echo.
echo *** Waechsel zu den Werten cols=128 lines=59 wurde durchgefuehrt ***
echo.
echo *** Befehl: mode con cols=128 lines=59 ***
echo.
echo 0 10 20 30 40 50 60 70 80 90 100 110 120
echo 12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
echo Zeile 09
echo Zeile 10
echo Zeile 11
echo Zeile 12
echo Zeile 13
echo Zeile 14
echo Zeile 15
echo Zeile 16
echo Zeile 17
echo Zeile 18
echo Zeile 19
echo Zeile 20
echo Zeile 21
echo Zeile 22
echo Zeile 23
echo Zeile 24
echo Zeile 25
echo Zeile 26
echo Zeile 27
echo Zeile 28
echo Zeile 29
echo Zeile 30
echo Zeile 31
echo Zeile 32
echo Zeile 33
echo Zeile 34
echo Zeile 35
echo Zeile 36
echo Zeile 37
echo Zeile 38
echo Zeile 39
echo Zeile 40
echo Zeile 41
echo Zeile 42
echo Zeile 43
echo Zeile 44
echo Zeile 45
echo Zeile 46
echo Zeile 47
echo Zeile 48
echo Zeile 49
echo Zeile 50
echo Zeile 51
echo Zeile 52
echo Zeile 53
echo Zeile 54
echo Zeile 55
echo Zeile 56
echo Zeile 57
echo Zeile 58
set dummychoice=
set /p dummychoice= Zeile 59 [ENTER]
mode con cols=%oldcols% lines=%oldlines%
echo.
echo *** Waechsel zu den alten Werten cols=%oldcols% lines=%oldlines% wurde durchgefuehrt ***
echo.
echo *** Befehl: mode con cols=%oldcols% lines=%oldlines% ***
echo.
echo ?!? Beim zuruecksetzen der alten Werte wird das Fenster ?!?
echo ?!? leider automatisch auf Maximalhoehe des Bildschirms gestraeckt ?!?
echo.
set dummychoice=
set /p dummychoice= [ENTER]
mode con cols=80 lines=25
echo.
echo *** Waechsel zurueck zur standard Fenster Hoehe lines=25 wurde durchgefuehrt ***
echo.
echo *** Befehl: mode con cols=80 lines=25 ***
echo.
echo ?!? Das hier ist wieder die Originalhoehe des standard Fensters ?!?
echo ?!? Jetzt ist das Fenster nur noch tatsaechliche 25 Zeilen hoch ?!?
echo ?!? Der Scrollbalken der vorher bis Zeile 300 ging ist verschwunden ?!?
echo ?!? Ohne Scrollbalken wird leider generel kein Scrollen mehr moeglich sein ?!?
echo.
set dummychoice=
set /p dummychoice= [ENTER]
mode con cols=83 lines=25
cmdow %systemroot%\system32\cmd.exe /max /act
mode con cols=%oldcols% lines=%oldlines%
cmdow %systemroot%\system32\cmd.exe /res /act
echo.
echo *** Waechsel zurueck zum Originalzustand wurde durchgefuehrt ***
echo.
echo *** Befehl: mode con cols=83 lines=25 ***
echo *** Befehl: cmdow %systemroot%\system32\cmd.exe /max /act
echo *** Befehl: mode con cols=%oldcols% lines=%oldlines% ***
echo *** Befehl: cmdow %systemroot%\system32\cmd.exe /res /act
echo.
echo ?!? Was bei diesem Vorgang genau passiert und wieso es so funktioniert ?!?
echo ?!? kann ich nicht zu 100 Prozent sagen. Im Fullscreen-Modus ist das ?!?
echo ?!? Fenster offenbar fixiert. cols und lines Aenderungen koennen so nicht ?!?
echo ?!? direkt auf das Fenster angewendet werden. Wenn man aus dem Fullscreen ?!?
echo ?!? wieder zurueck zum Fenster-Modus waechselt, dann bekommt das Fenster ?!?
echo ?!? auf jeden Fall seine alten Masse wieder zurueck und das selbst dann ?!?
echo ?!? wenn man cols und lines Aenderungen im Fullscreen-Modus vorgenommen ?!?
echo ?!? hat. Dieses Fenster zeigt nun wieder den Originalzustand eines ?!?
echo ?!? Shell-Fensters mit den korrekten Fenstermassen und dem Scrollbalken ?!?
echo ?!? der bis zur Zeile 300 herunterreicht. Der cols-Wert 83 aus dem ersten ?!?
echo ?!? Befehl ergibt sich aus dem 3 Zeichen breiten Scrollbalken. ?!?
echo ?!? Taete man die zusaetzlichen 3 cols nicht dazuaddieren, dann wuerde ?!?
echo ?!? das Fenster schlussendlich einen zusaetzlichen unteren Scrollbalken ?!?
echo ?!? erhalten. ?!?
echo.
set dummychoice=
set /p dummychoice= [ENDE]
EDIT: Ich hoffe meine Frage aus dem zweiten Screen hatte noch keiner geselen. Ich bin in der Zeile verrutscht und berichtete ueber angebliche 69 Zeilen...
Gruesse
wobleibtdiezeit
Morgen...
...und man kann das Shell-Fenster doch zu seinem Originalzustand wieder zurueckholen.
In meiner oben geposteten Batch ist nun ein fuenfter Schritt mit insgesamt 4 Befehle hinzugekommen.
Fuer diesen automatisierten Vorgang benoetigt man "cmdow".
Gruesse,
wobleibtdiezeit
...und man kann das Shell-Fenster doch zu seinem Originalzustand wieder zurueckholen.
In meiner oben geposteten Batch ist nun ein fuenfter Schritt mit insgesamt 4 Befehle hinzugekommen.
Fuer diesen automatisierten Vorgang benoetigt man "cmdow".
Gruesse,
wobleibtdiezeit