Top-Themen

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

Textblock kopieren

Mitglied: EvaEden

EvaEden (Level 1) - Jetzt verbinden

03.08.2012 um 14:47 Uhr, 2674 Aufrufe, 10 Kommentare

Liebe User,

ich möchte gerne den Header einer .htm Datei kopieren. Also alle Zeilen vom Anfang einer Textdatei bis zum Suchwort "</head>" in eine andere Datei kopieren. Leider unterstützt z.B. "split" kein Aufteilen von Dateien bis "Suchwort". Oder kennt Ihr noch andere Tools oder evtl. eine Batch-Lösung? Das Problem ist nur dass sich z.B. die Sonderzeichen ">" und "<", die ja in HTML-Code vorkommen, nicht so ohne weiteres in Batch verarbeiten lassen (echo <HEAD> >> out.txt).

Dankeschön fielmahls, Gruss & Kuss, die Haselnuss~
<°)))><

Mitglied: bastla
03.08.2012, aktualisiert um 16:38 Uhr
Hallo EvaEden und willkommen im Forum!
Problem ist nur dass sich z.B. die Sonderzeichen ">" und "<", die ja in HTML-Code vorkommen, nicht so ohne weiteres in Batch verarbeiten lassen (echo <HEAD> >> out.txt).
Eigentlich nicht - aber Zeilen, die eine ungerade Anzahl von Anführungszeichen enthalten, lassen den folgenden Batch entgleisen (zumindest, wenn sie sich im <Head>-Teil befinden):
01.
@echo off & setlocal 
02.
set "Ein=D:\Deine.html" 
03.
set "Aus=D:\Header.html" 
04.
set "Bis=</head>" 
05.
 
06.
set "Suche=%Bis:<=\<%" 
07.
set "Suche=%Suche:>=\>%" 
08.
del "%Aus%" 2>nul 
09.
set "Fertig=" 
10.
for /f "tokens=1* delims=:" %%i in ('findstr /n "^" "%Ein%"') do if not defined Fertig ( 
11.
    set "Zeile=%%j" 
12.
    call :ProcessLine 
13.
14.
goto :eof 
15.
 
16.
:ProcessLine 
17.
echo "%Zeile%"|findstr /i "%Suche%">nul || goto :Ausgabe 
18.
set "Fertig=True" 
19.
call set "Teil=%%Zeile:*%Bis%=%%" 
20.
call set "Zeile=%%Zeile:%Teil%=%%" 
21.
:Ausgabe 
22.
setlocal enabledelayedexpansion 
23.
>>"%Aus%" echo(!Zeile! 
24.
endlocal 
25.
goto :eof
- daher im Zweifelsfall eher VBS:
01.
Ein = "D:\Deine.html" 
02.
Aus = "D:\Header.html" 
03.
Bis = "</head>" 
04.
 
05.
Set fso = CreateObject("Scripting.FileSystemObject") 
06.
T = fso.OpenTextFile(Ein).ReadAll 
07.
P = InStr(1, T, Bis, vbTextCompare) 
08.
If P = 0 Then 
09.
    WScript.Echo "'" & Bis & "' konnte nicht gefunden werden!" 
10.
    WScript.Quit 1 
11.
End If 
12.
fso.CreateTextFile(Aus).Write Left(T, P - 1 + Len(Bis))
Grüße
bastla
Bitte warten ..
Mitglied: pieh-ejdsch
03.08.2012, aktualisiert 05.08.2012
moin bastla,

wenn der Baztch nicht grätschen soll dann eventuell so:

01.
@echo off 
02.
setlocal disabledelayedexpansion 
03.
set "Ein=D:\Deine.html" 
04.
set "Aus=D:\Header.html" 
05.
set "Bis=</head>" 
06.
 
07.
find /n /v "" <"%Ein%">"%temp%\tmpln.txt" 
08.
set "Fertig =" 
09.
3>"%Aus%" ( 
10.
for /f "usebackqtokens=1* delims=]" %%i in ("%temp%\tmpln.txt") do if not defined Fertig (  
11.
    set "Zeile=%%j" 
12.
    call :ProcessLine 
13.
14.
15.
goto :eof 
16.
 
17.
:ProcessLine 
18.
(cmd /von /c echo !Zeile!)|find /i "%Bis%">nul || goto :Ausgabe 
19.
set "Fertig=True" 
20.
setlocal enabledelayedexpansion 
21.
set "Teil=!Zeile:*%Bis%=!" 
22.
if defined Teil set "Zeile=!Zeile:%Teil%=!" 
23.
:Ausgabe 
24.
if %os% neq !os! setlocal enabledelayedexpansion 
25.
>&3 echo(!Zeile! 
26.
goto :eof
[Edit]
Code angepasst
[/Edit]

Gruß Phil
Bitte warten ..
Mitglied: bastla
03.08.2012 um 22:18 Uhr
Hallo PH!

Die gute Nachricht: grätscht nicht ...

Die schlechte Nachricht siehst Du selbst, wenn Du testest (und damit sind nicht nur ev Leerzeilen gemeint) ...

Grüße
bastla
Bitte warten ..
Mitglied: EvaEden
05.08.2012 um 09:50 Uhr
Vielen vielen Dank für Eure Lösungen!
So in etwa hatte ich es mir auch vorgestellt. Nur leider scheitert das meist schon am ersten "<!DOCTYPE...".
Deswegen war ich auf der Suche nach externen (GNU-)Tools, die mir eben den gesamten Block bis Suchwort herauskopieren o.ä.
Herzliche Grüßlinge & take care
Bitte warten ..
Mitglied: bastla
05.08.2012 um 11:08 Uhr
Hallo EvaEden!
Nur leider scheitert das meist schon am ersten "<!DOCTYPE...".
Das kann ich mir jedenfalls hinsichtlich der VBS-Variante überhaupt nicht vorstellen, und was den Batch angeht, sollte es eigentlich, wie oben angemerkt, auch nur dann nicht funktionieren, wenn eine Zeile eine ungerade Anzahl von Anführungszeichen enthält ...

Grüße
bastla
Bitte warten ..
Mitglied: pieh-ejdsch
05.08.2012, aktualisiert um 11:54 Uhr
moin,

da muss ich bastla recht geben.
also ich kann das mit dem geraden oder ungeraden Anführungsziechen gar nicht nachvollziehen.
Es kommt immer die Zeile Korrekt raus, egal wieviele bzw wo die Sonderzeichen stecken.

selbst als oneliner im CMD Fenster gehts richtig.

Den Code habe ich oben angepasst.

Gruß Phil
Bitte warten ..
Mitglied: 76109
05.08.2012 um 12:15 Uhr
Hallo zusammen!

Leider unterstützt z.B. "split" kein Aufteilen von Dateien bis "Suchwort".
Stellt sich eventuell die Frage, welches Textformat die Html-Dateien haben (Ansi, Unicode, UTFx..)?

Gruß Dieter
Bitte warten ..
Mitglied: pieh-ejdsch
05.08.2012 um 16:32 Uhr
moin,

Zitat von EvaEden:
Deswegen war ich auf der Suche nach externen (GNU-)Tools, die mir eben den gesamten Block bis Suchwort herauskopieren o.ä.

Dann hab ich mal einen kleinen Split per Batch hier, damit der HTML als ganzes wiederkömmt.

01.
@echo off 
02.
 
03.
setlocal disabledelayedexpansion 
04.
set "Ein=D:\Deine.html" 
05.
set "Aus=D:\Header.html" 
06.
set "Bis=</head>" 
07.
 
08.
call :In <"%Ein%" >"%aus%" 
09.
goto :eof 
10.
 
11.
:In 
12.
set /p "Zeile=" 
13.
(cmd /von /c echo(!Zeile!)|find "%Bis%" >nul ||(cmd /von /c "<nul set /p "=!Zeile!" "& goto :in ) 
14.
setlocal enabledelayedexpansion 
15.
set "Zeile=!Zeile:%Bis%=%Bis%\:!" 
16.
:End 
17.
if !Zeile:~-1! neq \ set "Zeile=!Zeile:~0,-1!" &goto :end 
18.
echo !Zeile:\=! 
19.
exit /b
^

Gruß Phil
Bitte warten ..
Mitglied: bastla
05.08.2012 um 20:27 Uhr
Hallo PH!

Das tut - und Zeilenumbrüche/Leerzeilen braucht man(n) in HTML ja ohnehin nicht wirklich ...

Grüße
bastla
Bitte warten ..
Mitglied: EvaEden
10.08.2012 um 10:02 Uhr
Vielen Dank Jungs!

ich habe jetzt eine schnellere Lösung gefunden:

sed "/<\/head/Iq" Deine.html>Header.html

http://gnuwin32.sourceforge.net/packages/sed.htm

Herzlichst, Eva~
Bitte warten ..
Ähnliche Inhalte
Drucker und Scanner
Drucker kopieren?
gelöst Frage von 114068Drucker und Scanner7 Kommentare

Hallo, und nochmals ne Druckerfrage: ist es möglich unter Windows (konkret Vers. 7 - 64bit) Drucker zu kopieren? Heißt: ...

Windows Netzwerk
Verzeichnisse Kopieren
gelöst Frage von Hans3003Windows Netzwerk13 Kommentare

Hallo zusammen, erstmal mein vorhaben mit kurzer Erklärung: Es gibt im NE einen HP ILO Cube Fileserver, und einen ...

VB for Applications
Excel kopieren
Frage von anchleVB for Applications1 Kommentar

Ich öffne eine Excel-Datei (2010) und eine DBase-Datei. Die ersten beiden Spalten sollen in der DB-Datei markiert und dann ...

Microsoft
Dateien kopieren
gelöst Frage von alex53842Microsoft2 Kommentare

Hallo zusammen, wir haben hier ein sehr tolles Phänomen. Eines unserer Dokumentenarchive hat einen kleinen Fehler. Es wurde eingerichtet ...

Neue Wissensbeiträge
Windows 10

Microcode-Updates KB4090007, KB4091663, KB4091664, KB4091666 für Windows 10

Information von kgborn vor 28 MinutenWindows 10

Kurze Information für Administratoren von Windows 10-Systemen, die mit neueren Intel CPUs laufen. Microsoft hat zum 23. April 2018 ...

iOS
Updates für Iphone und Co
Information von sabines vor 3 StundeniOS

Gestern abend ist iOS 11.3.1 erschienen, ein kleineres Update, dass einige Lücken schließt und "Lahmlegen" nach einem Display Tausch ...

Windows 7

Windows 7 - Server 2008 R2: Exploit für Total Meltdown verfügbar

Information von kgborn vor 1 TagWindows 7

Kleine Information für Administratoren, die für die Updates von Windows 7 SP1 und Windows Server 2008 R2 SP1 verantwortlich ...

Sicherheit

Zero Day-Schwachstelle im Internet Explorer - wird von APT bereits ausgenutzt

Information von kgborn vor 1 TagSicherheit

Im Kernel des Internet Explorer scheint es eine Zero Day-Lücke zu geben, die von staatlichen Akteuren (APT) im Rahmen ...

Heiß diskutierte Inhalte
C und C++
Frage1 C Programmierung-Makefile Frage2 PHP-Programmierung HTTP-Fehler 404
Frage von KatalinaC und C++28 Kommentare

Hallo, ich habe 2 Fragen, die nichts miteinander zu tun haben aber mit denen ich mich gerade beschäftige: 1. ...

LAN, WAN, Wireless
Watchguard T15 VPN Einrichtung
gelöst Frage von thomasjayLAN, WAN, Wireless25 Kommentare

Hallo zusammen, wir möchten gerne über unsere Watchguard T15 einen VPN-Tunnel (Mobile VPN with IPSec) einrichten! Als Client nutzen ...

DSL, VDSL
ISP Wechsel auf Vodefone Koax, Gebäudeverkabelung nur per Cat 7
gelöst Frage von wusa88DSL, VDSL19 Kommentare

Hallo Zusammen, ich bin momentan bei Mnet als Glasfaser Kunde und möchte Preis/Leistungs-Technisch zu Kabel Deutschland / Vodafone wechseln. ...

Hyper-V
HyperV DC + DNS + AC
gelöst Frage von HardstylesHyper-V16 Kommentare

Hallo kann mir jemand sagen wieso meine Domänen Computer kein Internetzugang erhalten? Ich hab hier ein Server wo die ...