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

Fieles parsen und Dokumentenlinks in txt schreiben

Frage Entwicklung Batch & Shell

Mitglied: scottt

scottt (Level 1) - Jetzt verbinden

08.08.2009, aktualisiert 22:07 Uhr, 3143 Aufrufe, 2 Kommentare

Hallo Miteinander,
ich habe ein kleines Problem. Ich muss ca 4500 Datein auf einen String durchsuchen und hoffe das Ihr mir weiterhelfen könnt, sonst bin ich 2015 noch nicht fertig *smile*.
Ich freue mich auf eure Antworten.

MfG
scottt

Hallo Miteinander,
ich habe ein kleines Problem, ich möchte gern eine Datei mittels Batch auf den String (http://*.tpl) parsen und diesen Sting der auch mehrfach vorkommen kann in eine andere Datei schrieben. Ich muss ca. knapp 4500 Datein nach diesen Sting durchsuchen. Kann mir jemand hierbei weiterhelfen?

So sieht es bei mir zur Zeit aus:

Die Datein liegen unter: c:\temp
und heißen: 1, 2, 3, 12, 123, 1515 etc.
die Strucktur, stark vereinfacht:

c:\temp\112
<html>
<head>
<title>eine seite</title>
<link rel="stylesheet" type="text/css" href="design/style/nav.css" />
</head>
<body leftmargin="0" topmargin="0" marginWidth="0" marginHeight="0">
<table>
<tr>
<td>
<a href="http://eine-url.de/xxx.tpl;>xxx</a>"
<a href="http://eine-andere-url.de/yyy.tpl;>yyy</a>"

</td>
</tr>
</table>
</body>
</html>
Es soll nunhttp://eine-url.de/xxx.tpl & http://eine-andere-url.de/yyy.tpl in einer anderen .txt Datei geschrieben werden. Kann mir hierbei jemand weiterhelfen?

Vielen Dank ich freue mich auf eure Antworten.

MfG
scottt
Mitglied: rubberman
09.08.2009 um 00:52 Uhr
Hallo scottt,
HTML-Tags zu verarbeiten ist immer etwas tricky. Grund ist, dass Zeichen wie <, > und & auch im Batch einen Sonderstatus haben.
Aus deinem Beispiel habe ich (vielleicht fälschlicherweise) geschlossen, dass der auszugebende Link immer mit .tpl endet.
Falls das so ist, könnte es so funktionieren
01.
@echo off &setlocal 
02.
 
03.
:: anpassen: 
04.
set inputfolder=c:\temp 
05.
set outputfile=c:\text.txt 
06.
 
07.
pushd "%inputfolder%" 
08.
for /f "tokens=*" %%i in ('dir /a-d /b') do ( 
09.
 for /f "tokens=*" %%j in ('findstr /i /c:"a href=" "%%i"') do set "Zeile=%%j" &call :sub 
10.
11.
popd 
12.
pause 
13.
goto :eof 
14.
 
15.
:sub 
16.
set Zeile=%Zeile:<=% 
17.
set Zeile=%Zeile:>=% 
18.
set Zeile=%Zeile:&=% 
19.
set Zeile=%Zeile:"=°% 
20.
set Zeile=%Zeile:.tpl=°% 
21.
for /f "tokens=2 delims=°" %%k in ("%Zeile%") do echo %%k.tpl>>"%outputfile%" 
22.
goto :eof
Bitte warten ..
Mitglied: bastla
09.08.2009 um 12:48 Uhr
Hallo scott und willkommen im Forum!

Als Alternative (die ebenfalls auf der Annahme basiert, dass der Link auf ".tpl" endet) ein Batch mit ein wenig integriertem VBScript (sollte das Ganze robuster und leichter anpassbar machen):
01.
@echo off & setlocal 
02.
set "Ordner=C:\Temp" 
03.
set "Dateien=*." 
04.
set "Aus=D:\Links.txt" 
05.
set "Suche=<a href=""(http://.*\.tpl)"">.*</a>" 
06.
 
07.
set "G=%temp%\GetURL.vbs" 
08.
>%G%  echo Set fso=CreateObject("Scripting.FileSystemObject"):T=fso.OpenTextFile(WScript.Arguments(0)).ReadAll 
09.
>>%G% echo Set rE=New RegExp:rE.Pattern="%Suche%":rE.IgnoreCase=True:rE.Global=True:Set Ms=rE.Execute(T):If Ms.Count^<1 Then WScript.Quit 
10.
>>%G% echo Set Aus=fso.OpenTextFile("%Aus%",8,True):For Each M In Ms:Aus.WriteLine M.SubMatches(0):Next 
11.
 
12.
if exist "%Aus%" del "%Aus%" 
13.
for %%i in ("%Ordner%\%Dateien%") do cscript //nologo %G% "%%~fi"
In Zeile 3 wird vorgegeben, dass nur Dateien ohne Typangabe (*.) gesucht werden sollen.

Anmerkung zum Suchstring in Zeile 5 (für ev Anpassungen):
  • Enthaltene Anführungszeichen müssen verdoppelt werden,
  • der Punkt bedeutet "ein beliebiges Zeichen" (und mit "*" dahinter "eine beliebige Anzahl beliebiger Zeichen") und muss, wenn tatsächlich das Zeichen "." gemeint ist, durch ein vorangestelltes "\" gekennzeichnet werden, und
  • der Teil, den Du als Ergebnis benötigst, ist in Klammern zu setzen

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Bestimmte Daten aus CSV per Windows BATCH Datei in .txt Format schreiben lassen. (9)

Frage von freshman2017 zum Thema Batch & Shell ...

Windows 10
gelöst Zeichenfolge in .reg Datei schreiben (Registry) (4)

Frage von MedicalAd zum Thema Windows 10 ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(7)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Heiß diskutierte Inhalte
Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...

Batch & Shell
gelöst Batch um Benutzer aus Sitzung abzumelden (15)

Frage von zeroblue2005 zum Thema Batch & Shell ...

Linux
gelöst Google Chrome startet nicht (12)

Frage von Thomas91 zum Thema Linux ...