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

Batch - An beliebiger Stelle in Textdatei Text einfügen

Frage Entwicklung Batch & Shell

Mitglied: fluluk

fluluk (Level 1) - Jetzt verbinden

07.10.2013 um 16:16 Uhr, 1511 Aufrufe, 3 Kommentare

Hallo,

ich habe eine Textdatei, die mir durch ein Skript ausgegeben wurde, diese würde ich mir gerne per E-Mail im HTM Format zuschicken lassen, da sie ohne Tabelle ziemlich verschoben wird.

der Inhalt dieser Datei sieht folgendermaßen aus:
Verzeich.: 5 0 5 0 0 0
Dateien: 40 0 40 0 0 0
Bytes: 3.626 t 0 3.626 t 0 0 0

das Ganze ist im Editor sehr gut Formatiert. hinter Spalte 21, 31, 41, 51 usw. sollten also die jeweilige Tabellenspalte zu ende sein.
Hier durch eine Pipe gekennzeichnet:

Verzeich.: 5| 0| 5| 0| 0| 0|
Dateien: 40| 0| 40| 0| 0| 0|
Bytes: 3.626 t| 0| 3.626 t| 0| 0| 0|

Spalte 21, 31, 41, 51 usw. bezieht sich in dem Fall also auf den Buchstabe der jeweiligen Zeile. Da sich dieser immer an der selben stelle befindet, habe ich gehofft ich kann ein Batch schreiben, welches mir an eben diesen stellen ein: </th><th> einfügt bzw. am Anfang ein <tr><th> und am Ende ein </tr>, sodass ich eine eine saubere Tabelle erhalte.
Die kann ich ja dann als HTM-File abspeichern und schon habe ich das, was ich benötige.

01.
  
02.
<table> 
03.
<tr><th>Verzeich.:</th><th>5</th><th>0</th><th>5</th><th>0</th><th>0</th><th>0</th></tr> 
04.
<tr><th>Dateien:</th><th>40</th><th>0</th><th>40</th><th>0</th><th>0</th><th>0</th></tr> 
05.
<tr><th>Bytes:</th><th>3.626 t</th><th>0</th><th>3.626 t</th><th>0</th><th>0</th><th>0</th></tr> 
06.
</table>
bzw:
Verzeich.: 5 0 5 0 0 0
Dateien: 40 0 40 0 0 0
Bytes: 3.626 t 0 3.626 t 0 0 0

gibt es also eine Möglichkeit per Batch an diesen Positionen den HTML Code einzufügen oder generell eine Möglichkeit so etwas automatisiert umzusetzen?
ich möchte dafür kein Extra Programm einsetzen.

gruß fluluk
Mitglied: Endoro
07.10.2013 um 19:20 Uhr
Hi, versuch das:
01.
@ECHO OFF &SETLOCAL  
02.
for /f "delims=" %%a in (file.txt) do ( 
03.
	set "line=%%a" 
04.
	setlocal enabledelayedexpansion 
05.
	set "line=!line: t=@t!" 
06.
	set "line=<tr><th>!line: =</th><th>!</th></tr>" 
07.
	set "line=!line:@= !" 
08.
	>>"file.html" echo(!line! 
09.
	endlocal 
10.
)
lg.
Bitte warten ..
Mitglied: fluluk
08.10.2013 um 08:35 Uhr
Hallo,
wenn ich das richtig verstehe werden alle Leerzeichen hier durch ein </th><th> ersetzt.
Dadurch stimmen die Spalten Leider nicht.

ich habe hier mal die Leerzeichen durch einen Punkt ersetzt, dass man erkennt wie der Test Formatiert ist:

Verzeich.:.........5.........0.........5.........0.........0.........0
..Dateien:........40.........0........40.........0.........0.........0
....Bytes:...3.626.t.........0...3.626.t.........0.........0.........0

hier ist hinter Zeichen 11 jeweils die Bezeichnung (Verzeich. / Dateien / Bytes) zuende und hinter Zeichen 21 die erste Spalte. werden die Zahlen größer, werden es natürlich auch weniger Leerzeichen.
Bitte warten ..
Mitglied: Endoro
08.10.2013, aktualisiert um 15:16 Uhr
Hi, verstehe, es geht um konstante Spaltenbreiten:
01.
@ECHO OFF &SETLOCAL  
02.
set /a width=10 
03.
(for /f "delims=" %%a in (file) do call:doit "%%~a")>"file.html" 
04.
goto:eof 
05.
 
06.
:doit 
07.
setlocal enabledelayedexpansion 
08.
set "line=%~1"  
09.
for /f "delims=:" %%i in ('"(@echo(%line%&@echo()|findstr /o $"') do set /a linelen=%%i-2 
10.
set /a cnt=linelen / width, rst=linelen %% width 
11.
if %rst% equ 0 set /a cnt-=1 
12.
for /l %%a in (0,1,%cnt%) do ( 
13.
	set /a ptr=%%a * width 
14.
	if %%a equ %cnt% ( 
15.
		call set "out=!out!%%line:~!ptr!,%width%%%" 
16.
	) else ( 
17.
		call set "out=!out!%%line:~!ptr!,%width%%%</th><th>" 
18.
19.
20.
set "out=<tr><th>!out!</th></tr>" 
21.
echo(!out! 
22.
endlocal 
23.
exit /b
lg.
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst BATCH: Daten aus Textdatei auslesen und in neue Textdatei separieren (9)

Frage von Manuel1234 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch: Textdatei Zeilenweise auslesen (2)

Frage von CreatorX zum Thema Batch & Shell ...

Batch & Shell
Batch bestimme Zeile einer vorherigen batch einfügen (9)

Frage von Frensche zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
TK-Netze & Geräte
gelöst Telefonanlage gesucht (35)

Frage von Xaero1982 zum Thema TK-Netze & Geräte ...

Erkennung und -Abwehr
Virenschutz - Meinungen (29)

Frage von honeybee zum Thema Erkennung und -Abwehr ...

Windows 10
gelöst Welches OS für Firmengeräte? (20)

Frage von MarkusVH zum Thema Windows 10 ...

Exchange Server
SBS2011: POP3-Connector 10 MB Grenze Email Benachrichtigung (20)

Frage von bogi1102 zum Thema Exchange Server ...