Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batch: text mit fester Länge am Bildschirm ausgeben

Frage Entwicklung Batch & Shell

Mitglied: joemouth

joemouth (Level 1) - Jetzt verbinden

07.01.2015, aktualisiert 13:35 Uhr, 747 Aufrufe, 2 Kommentare, 1 Danke

Hallo Freunde der gepflegten Batchprogrammierung,

ich möchte Text aus SET Variablen mit fester Länge per echo ausgeben.

Ziel ist es, so etwas wie eine Tabelle auf dem Bildschirm anzuzeigen.

%I:~n,m% kenne ich, um Teilstrings zu ermitteln.

echo %I:~0,10%
Ergibt eine Ausgabe mit maximal 10 Zeichen, nur wenn der Text kleiner als 10 Zeichen lang ist, wird auch weniger ausgegeben.

Wie erreiche ich in meinem Beispiel, dass der Text immer 10 Zeichen lang ist, also ggfs. mit Blanks aufgefüllt wird o.ä.?

Vielen Dank für Eure Hilfe

Mitglied: colinardo
LÖSUNG 07.01.2015, aktualisiert um 13:35 Uhr
Hallo joemouth,
z.B. so (die Leerzeichen sind, damit sie in der Demo sichtbar sind, durch Punkte ersetzt, das kannst du in Zeile 22 ganz am Ende anpassen)
01.
@echo off & setlocal enabledelayedexpansion 
02.
set fixedlength=10 
03.
set "var1=Test" 
04.
set "var2=1234567890123" 
05.
set "var3=12345678" 
06.
 
07.
call :makefixed var1 
08.
call :makefixed var2 
09.
call :makefixed var3 
10.
echo %var1% 
11.
echo %var2% 
12.
echo %var3% 
13.
goto :eof 
14.
 
15.
:makefixed 
16.
set padd= 
17.
call :strLength strLen "!%1!" 
18.
if %strLen% GTR %fixedlength% ( 
19.
	set "%1=!%1:~0,%fixedlength%!" 
20.
) else ( 
21.
  set /a spaces=%fixedlength%-!strLen! 
22.
  for /l %%a in (1 1 !spaces!) do set "padd=!padd!." 
23.
  set "%1=!%1!!padd!" 
24.
25.
goto :eof 
26.
 
27.
:strLength 
28.
set "#=%~2" 
29.
set length=0 
30.
:stringLengthLoop 
31.
if defined # (set #=%#:~1%&set /A length += 1&goto stringLengthLoop) 
32.
set "%~1=%length%" 
33.
goto :eof
Grüße Uwe
Bitte warten ..
Mitglied: joemouth
07.01.2015 um 13:36 Uhr
Perfekt, Danke Dir!
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Batch ausgabe zeilenweise stat spaltenweise ausgeben (4)

Frage von sugram zum Thema Batch & Shell ...

Batch & Shell
gelöst VBS Script in eine Textdatei ausgeben (VBS mit Batch zusammenführen) (5)

Frage von Luuke257 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Hardware
Laptop ins Salzwasser gefallen (18)

Frage von Marcel94 zum Thema Hardware ...

Hardware
Lenovo Yoga 500 über angeschlossene USB Tastatur booten (13)

Frage von thomasreischer zum Thema Hardware ...

Switche und Hubs
LAG zwischen Cisco SG300 und Dlink DGS1100 herstellen - wie? (13)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

Viren und Trojaner
Wie werde ich den Mist "fanli90" wieder los? (12)

Frage von Taumel zum Thema Viren und Trojaner ...