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, 1499 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: Öffnen einer Textdatei nach Systemneustart (17)

Frage von sascha382 zum Thema Batch & Shell ...

Batch & Shell
Text in neue 1. Zeile in Textdatei einfügen (4)

Frage von FuxxLi zum Thema Batch & Shell ...

Microsoft Office
gelöst Wie kann man die Standard-Schriftart bei einfügen von Text in Word 2013 festlegen? (3)

Frage von Rene1976 zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (18)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...