Wie kann ich die Anzeige einer verschickten Batch-Datei ändern?
2 Antworten
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
bat, Batch, cmd
mit Batch hast Du wenig Einfluss auf die Darstellung auf einem anderen Rechner. Die Wahl des Fonts/Schriftgröße/Zeilenbuffer/Farbbelegung der Console ist von den Voreinstellungen des jeweiligen Nutzers abhängig.
Die Größe eines Fensters kannst Du jedoch mit dem Mode-Befehl bestimmen, so das du einigermaßen die Kontrolle hast, das längere Textausgaben ohne Umbruch dargestellt werden.
Der Color-befehl kann nur mit der in den Cosolesetings festgelegeten 16 Farben arbeiten. für mehr muss man auf ANSI-Escapesequenzen zurückgreifen
demo.cmd
@echo off
chcp 65001 >nul & rem Umlaute anzeigen
rem teste ob unter Win 10 (ab 1903) die neuen Consolfunktionen eingeschalten sind...
rem braucht man unter aktuellen Versionen von Windows nicht mehr...
for /f "tokens=3 delims=." %%a in ('ver') do (
if %%a geq 18362 (reg query "HKCU\Console" /v "ForceV2"|find "REG_DWORD 0x0">nul && (
echo Neue Consolenfunktionen sind ausgeschaltet!) || goto :init
) else ( echo Benötige Windows 10 ab Version 1903)
)
rem der Test kan weg
:init
rem erzeuge Escape-Char Variable %ESC%
for /f %%. in ('"echo prompt $E|cmd"') do set "ESC=%%."
set "saveCursorPos=%ESC%7"
set "loadCursorPos=%ESC%8"
set "CursOff=%ESC%[?25l"
set "CursOn=%ESC%[?25h"
rem Cursor auschalten und Text ausgeben
echo %CursOff%Ich ändere in 3 Sekunden die Fenstergöße auf 40x30 Zeichen
timeout 3 >nul
mode 44,30
rem setze die Farben auf eine RGBwert
rem Vordergrund RGB %ESC%[38;2;Rot;Grün;Blau (jeweils 0..255)
rem Hintergrund RGB %ESC%[48;2;Rot;Grün;Blau (kann zu einer ESC-Sequenz zuammengefasst werden: %ESC%[38;2;Rot;Grün;Blau;48;2;Rot;Grün;Blau)
echo setze Vordergrund auf Dunkelblau ...Hintergund ein ganz helles Gelb...%ESC%[38;2;0;0;32;48;2;255;255;150m
echo ...jepp
timeout 3
cls
rem Zeichne Anhang Wolf
call :DrawASCIILogo "Wolf"
timeout 10 >nul
rem Fenster anpassen
mode 84,12
echo %ESC%[38;2;255;0;255;48;2;0;80;40m
cls
call :DrawASCIILogo "Erzesel.Flower"
rem Farbe auf Standard...
echo %ESC%[0m
pause
exit /b
:DrawASCIILogo
rem finde die Anfangszeile des Bildes in dieser Batch
set "toSkip="
set "beginMark=::::Begin %~1.logo"
for /f "skip=2 tokens=1 delims=[]" %%a in ('find /n "%beginMark%" "%~f0"') do (set "toSkip=%%a")
if not defined toSkip (
echo LogoMarker: "%beginMark%" nicht gefunden!
exit /b 1
)
for /f "usebackq skip=%toSkip% tokens=* delims=" %%t in ("%~f0") do (
if /i "%%~t"=="::::End.logo::::" exit /b 0
echo %%t
)
exit /b
::Logo(s) nach folgendem Muster kennzeichen:
::::Begin Wolf.logo
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒
▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░░░░░░░░▒▒▒▒▒▒▒▒▒
▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▒▒▒▒▒▒▒
▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▄░░▒▒▒▒▒
▒▒▒▒▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░██▌░░▒▒▒▒
▒▒▒▒░░░░░░░░░░░░░░░░░░░░░░░░░░░▄▄███▀░░░░▒▒▒
▒▒▒░░░░░░░░░░░░░░░░░░░░░░░░░░░█████░▄█░░░░▒▒
▒▒░░░░░░░░░░░░░░░░░░░░░░░░░░▄████████▀░░░░▒▒
▒▒░░░░░░░░░░░░░░░░░░░░░░░░▄█████████░░░░░░░▒
▒░░░░░░░░░░░░░░░░░░░░░░░░░░▄███████▌░░░░░░░▒
▒░░░░░░░░░░░░░░░░░░░░░░░░▄█████████░░░░░░░░▒
▒░░░░░░░░░░░░░░░░░░░░░▄███████████▌░░░░░░░░▒
▒░░░░░░░░░░░░░░░▄▄▄▄██████████████▌░░░░░░░░▒
▒░░░░░░░░░░░▄▄███████████████████▌░░░░░░░░░▒
▒░░░░░░░░░▄██████████████████████▌░░░░░░░░░▒
▒░░░░░░░░████████████████████████░░░░░░░░░░▒
▒█░░░░░▐██████████▌░▀▀███████████░░░░░░░░░░▒
▐██░░░▄██████████▌░░░░░░░░░▀██▐█▌░░░░░░░░░▒▒
▒██████░█████████░░░░░░░░░░░▐█▐█▌░░░░░░░░░▒▒
▒▒▀▀▀▀░░░██████▀░░░░░░░░░░░░▐█▐█▌░░░░░░░░▒▒▒
▒▒▒▒▒░░░░▐█████▌░░░░░░░░░░░░▐█▐█▌░░░░░░░▒▒▒▒
▒▒▒▒▒▒░░░░███▀██░░░░░░░░░░░░░█░█▌░░░░░░▒▒▒▒▒
▒▒▒▒▒▒▒▒░▐██░░░██░░░░░░░░▄▄████████▄▒▒▒▒▒▒▒▒
▒▒▒▒▒▒▒▒▒██▌░░░░█▄░░░░░░▄███████████████████
▒▒▒▒▒▒▒▒▒▐██▒▒░░░██▄▄███████████████████████
▒▒▒▒▒▒▒▒▒▒▐██▒▒▄████████████████████████████
▒▒▒▒▒▒▒▒▒▒▄▄████████████████████████████████
████████████████████████████████████████████
::::End.logo::::
::::Begin Erzesel.Flower.logo
.-''-. .-------. ____..--' .-''-. .-'''-. .-''-. .---.
.'_ _ \ | _ _ \ | | .'_ _ \ / _ \ .'_ _ \ | ,_|
/ ( ` ) '| ( ' ) | | .-' ' / ( ` ) ' (`' )/`--' / ( ` ) ',-./ )
. (_ o _) ||(_ o _) / |.-'.' /. (_ o _) |(_ o _). . (_ o _) |\ '_ '`)
| (_,_)___|| (_,_).' __ / _/ | (_,_)___| (_,_). '. | (_,_)___| > (_) )
' \ .---.| |\ \ | | .'._( )_ ' \ .---..---. \ :' \ .---.( . .-'
\ `-' /| | \ `' /.' (_'o._) \ `-' /\ `-' | \ `-' / `-'`-'|___
\ / | | \ / | (_,_)| \ / \ / \ / | \
`'-..-' ''-' `'-' |_________| `'-..-' `-...-' `'-..-' `--------`
::::End.logo::::
Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren
Wie sie beim Empfänger angezeigt wird (genauer: anzeigbar ist), kann man- als Absender der Datei - überhaupt nicht beeinflussen.