Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 1538 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Batch: Programm öffnen und beliebige Eingabe einfügen (z.b als pw) (1)

Frage von VernoxVernax 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 ...

Batch & Shell
gelöst Sonderzeichen in eine Batch automatisch einfügen (18)

Frage von Dr.Byte zum Thema Batch & Shell ...

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

Frage von CreatorX zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(1)

Information von DerWoWusste zum Thema Microsoft ...

Humor (lol)

Wohnt jemand in Belgien und kann nicht mehr ruhig ausschlafen?

(6)

Information von LordGurke zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Hosting & Housing
Mailserver Software Empfehlungen (21)

Frage von sunics zum Thema Hosting & Housing ...

Voice over IP
DeutschlandLAN IP Voice Data M Premium, Erfahrung mit Faxgeräte? (16)

Frage von liquidbase zum Thema Voice over IP ...

TK-Netze & Geräte
TK-Anlage VoIP - DECT Erweiterung (15)

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