Batch - An beliebiger Stelle in Textdatei Text einfügen
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:
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:
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.
bzw:
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
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
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|
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.
<table>
<tr><th>Verzeich.:</th><th>5</th><th>0</th><th>5</th><th>0</th><th>0</th><th>0</th></tr>
<tr><th>Dateien:</th><th>40</th><th>0</th><th>40</th><th>0</th><th>0</th><th>0</th></tr>
<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>
</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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 218682
Url: https://administrator.de/forum/batch-an-beliebiger-stelle-in-textdatei-text-einfuegen-218682.html
Ausgedruckt am: 04.04.2025 um 08:04 Uhr
3 Kommentare
Neuester Kommentar
Hi, verstehe, es geht um konstante Spaltenbreiten:
lg.
@ECHO OFF &SETLOCAL
set /a width=10
(for /f "delims=" %%a in (file) do call:doit "%%~a")>"file.html"
goto:eof
:doit
setlocal enabledelayedexpansion
set "line=%~1"
for /f "delims=:" %%i in ('"(@echo(%line%&@echo()|findstr /o $"') do set /a linelen=%%i-2
set /a cnt=linelen / width, rst=linelen %% width
if %rst% equ 0 set /a cnt-=1
for /l %%a in (0,1,%cnt%) do (
set /a ptr=%%a * width
if %%a equ %cnt% (
call set "out=!out!%%line:~!ptr!,%width%%%"
) else (
call set "out=!out!%%line:~!ptr!,%width%%%</th><th>"
)
)
set "out=<tr><th>!out!</th></tr>"
echo(!out!
endlocal
exit /b