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
GELÖST

per batch text aus datei ab einem best. zeichen in andere datei kopieren

Frage Entwicklung Batch & Shell

Mitglied: icram

icram (Level 1) - Jetzt verbinden

07.08.2008, aktualisiert 13:16 Uhr, 6452 Aufrufe, 6 Kommentare

hallo,

ich möchte aus mehreren txt-Dateien ab einem bestimmten Text (nämlich <!!!><???>) den nachfolgenden Text in eine neue
Datei kopieren.
also so:
suche in Datei 1 nach dem Begriff <!!!><???> und schreibe alle Zeichen danach in die Datei gesamt-neu.txt.
suche in Datei 2 nach dem Begriff <!!!><???> und schreibe alle Zeichen danach in die Datei gesamt-neu.txt.
suche in Datei 3 nach dem Begriff <!!!><???> und schreibe alle Zeichen danach in die Datei gesamt-neu.txt.

kann mir da jemand helfen? von batch-befehlen hab ich nicht so viel Ahnung. (ich kenne nur mkdir, copy, ren und so Standardsachen..)

viele Grüße

marc
Mitglied: bastla
07.08.2008 um 10:56 Uhr
Hallo icram!

Zur Not ginge es auch mit Batch alleine, aber besser geeignet für Textoperationen ist VBScript - daher eine Kombination:
01.
@echo off & setlocal 
02.
set "Neu=D:\gesamt-neu.txt" 
03.
set "Quelle=D:\Datei*.txt" 
04.
 
05.
if exist "%Neu%" del "%Neu%" 
06.
set E=%temp%\Extract.vbs 
07.
> %E% echo S="<!!!><???>":T=CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0)).ReadAll:P=InStr(T,S):If P^>0 Then WScript.Echo Mid(T,P+Len(S)) 
08.
 
09.
for %%i in ("%Quelle%") do cscript //nologo %E% "%%i">>"%Neu%"
Dieser Batch erzeugt ein VBScript und "füttert" es der Reihe nach mit den Dateien, welche als %Quelle% festgelegt wurden. Das Script liefert jeweils den von Dir gewünschten Ausschnitt aus der Datei als Ergebnis zurück, welches dann an die Datei %Neu% angefügt wird.

Grüße
bastla
Bitte warten ..
Mitglied: icram
07.08.2008 um 11:26 Uhr
hallo bastla

SUUUPER!!! DAnke! genau so funktionierts! Vielen Dank!

noch ein kleiner Schönheitsfehler: wenn in der Ursprungsdatei ein ß,ö,ä oder ü
steht, erscheint das in der neuen Textdatei als á oder " oder so. wie kann ich das noch ändern?

viele Grüße
marc

ps: ich hab einige deiner Beiträge "gebookmarkt", u.a. hat mir dieser hier
schon sehr oft geholfen

http://www.administrator.de/.csv_Dateien_Zusammenkopieren_und_bestimmte ...
Bitte warten ..
Mitglied: bastla
07.08.2008 um 11:41 Uhr
Hallo icram!

Dann kleiner Strategiewechsel - das VBScript übernimmt auch gleich das Schreiben:
01.
@echo off & setlocal 
02.
set "Neu=D:\gesamt-neu.txt" 
03.
set "Quelle=D:\Datei*.txt" 
04.
 
05.
if exist "%Neu%" del "%Neu%" 
06.
set E=%temp%\Extract.vbs 
07.
> %E% echo S="<!!!><???>":Set fso=CreateObject("Scripting.FileSystemObject"):T=fso.OpenTextFile(WScript.Arguments(0)).ReadAll 
08.
>>%E% echo P=InStr(T,S):If P^>0 Then fso.OpenTextFile(WScript.Arguments(1),8,1).Write Mid(T,P+Len(S)) 
09.
 
10.
for %%i in ("%Quelle%") do cscript //nologo %E% "%%i" "%Neu%"
Grüße
bastla

P.S.: Freut mich immer, wenn's hilft ...

[Edit] Dem "OpenTextFile" noch ",1" hinzugefügt. [/Edit]
Bitte warten ..
Mitglied: icram
07.08.2008 um 12:06 Uhr
hm, jetzt erscheint folgende fehlermeldung

C:\Users\marc\AppData\Local\Temp\Extract.vbs(2, 26) Laufzeitfehler in Microsoft VBScript: Die Datei wurde nicht gefunden.

ich hab vista, muss da noch irgendwas installiert werden?
Bitte warten ..
Mitglied: bastla
07.08.2008 um 12:23 Uhr
Hallo icram!

Sorry - hatte vergessen, in Zeile 8 dem "OpenTextFile" noch ein ",1" hinzuzufügen - ist inzwischen auch oben korrigiert.

Grüße
bastla
Bitte warten ..
Mitglied: icram
07.08.2008 um 13:16 Uhr
Vielen Dank! Funktioniert Prima!

marc
Bitte warten ..
Neuester Wissensbeitrag
Off Topic

"Ich habe nichts zu verbergen"

(2)

Erfahrungsbericht von FA-jka zum Thema Off Topic ...

Ähnliche Inhalte
Batch & Shell
gelöst Ordner per Batch verschieben, Datei kopieren (2)

Frage von Shape.Shifter zum Thema Batch & Shell ...

Batch & Shell
gelöst Per Batch nur neueste Datei mit bestimmten Dateianfang kopieren (3)

Frage von Peter32 zum Thema Batch & Shell ...

Batch & Shell
gelöst For Schleife für Abgleich mit Text-Datei und Unterverzeichnisse (4)

Frage von grisur zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Linux Netzwerk
gelöst DHCP vergibt keine Adressen (32)

Frage von Maik82 zum Thema Linux Netzwerk ...

Apache Server
gelöst Lets Encrypt SSL mit Apache2 (20)

Frage von banane31 zum Thema Apache Server ...

CPU, RAM, Mainboards
Kaufberatung für mind. 8 verschiedene HighEnd-Mainboards (20)

Frage von yperiu zum Thema CPU, RAM, Mainboards ...

Mac OS X
Mac kann nicht im LAN pingen alle anderen schon (14)

Frage von smartino zum Thema Mac OS X ...