Wie kann ich die Anzeige einer verschickten Batch-Datei ändern?

2 Antworten

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.