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

gelöst In vielen Textfiles bestimmte Zeile kopieren, verändern und doppelt an den Anfang stellen

Mitglied: Andreas72

Andreas72 (Level 1) - Jetzt verbinden

25.08.2013 um 00:21 Uhr, 1703 Aufrufe, 4 Kommentare, 2 Danke

Hallo zusammen,

bei einer Datenmigration habe ich ca. 2000 Textfiles, die ich für den Import bearbeiten muß nach folgendem Muster: Eine Zeile innerhalb der Datei mit "date: " am Anfang muß kopiert werden und dann mit "date1: " die erste und zweite Zeile der Datei darstellen. Also:
vorher:
(...)
date Sun, 25.08.13
(...)
nachher:
date1: Sun, 25.08.13
date1: Sun, 25.08.13
(...)
date: Sun, 25.08.13
(...)

Die Zeile "date" ist immer in einer unterschiedlichen Zeile, aber nur einmal innerhalb einer Datei.

Mit den beantworteten Fragen in dem Forum habe ich es bis zu:
date1: date1:
(...)
date: Sun, 25.08.13
(...)
gebracht. Da ich aber keine Batch oder VB Kenntnisse habe, komme ich jetzt nicht weiter.

Könnt Ihr mir bitte helfen ?
Danke
Andreas
Mitglied: bastla
25.08.2013, aktualisiert um 00:51 Uhr
Hallo Andreas72 und willkommen im Forum!

Das könnte etwa so gehen:
01.
@echo off & setlocal
02.
set "Ordner=D:\Dein Ordner"
03.
set "Suche=date"
04.

05.
set "T=%temp%\tmp.txt"
06.
for /f "delims=" %%i in ('dir /b/a-d "%Ordner%\*.txt"') do call :ProcessFile "%Ordner%\%%i"
07.
del "%T%"
08.
goto :eof
09.

10.
:ProcessFile
11.
set "Zeile="
12.
for /f "delims=" %%a in ('findstr /ib "%Suche%" %1') do set "Zeile=%%a"
13.
if not defined Zeile (
14.
    echo "%Suche%" in Datei %1 nicht gefunden
15.
    goto :eof
16.
)
17.
move %1 "%T%"
18.
 >%1 echo(%Zeile%
19.
>>%1 echo(%Zeile%
20.
>>%1 type "%T%"
21.
goto :eof
Bitte zunächst nur auf Testdaten loslassen ...

Grüße
bastla
Bitte warten ..
Mitglied: Andreas72
25.08.2013 um 20:40 Uhr
Hallo bastla,
danke für die schnelle Antwort, hatte sie auch vergangene Nacht noch ausprobiert. Ich hatte dabei festgestellt, daß meine Daten etwas anders ausschauen als gedacht, den Suchstring angepaßt und es läuft prima. Allerdings müssen die beiden "date", die dann am Dateianfang zu stehen kommen, noch in "Datum" umbenannt werden. Ich hatte zwar aus anderen Ersetzen-Fragen Quelltext ausprobiert (hinter Zeile 19 einkopiert), und dann kam nur heraus:

Datum: Datum:
(...)
date: Sun, 25.08.13
(...)

Wie muß ich eine Ersetzen-Funktion machen ?
Zusatzfrage: Welche Funktion hat die offene Klammer in den Zeilen 18 und 19 ? Ohne diese lief es auch (ich habe mit dem Quelltext ein wenig experimentiert ).

Viele Grüße.

Andreas
Bitte warten ..
Mitglied: bastla
25.08.2013, aktualisiert 26.08.2013
Hallo Andreas72!

Wenn sich nach dem "date" am Zeilenanfang ein Leerzeichen befinden sollte, wäre das ganz einfach so zu lösen:

Zeile 12
for /f "tokens=1*" %%a in ('findstr /ib "%Suche%" %1') do set "Zeile=%%b"
Zeile 18 (Zeile 19 analog):
 >%1 echo Datum: %Zeile%
Ansonsten kannst Du in der Variablen %Zeile% "date" so durch "Datum" ersetzen (allerdings bei mehrfachem Auftreten dann jedes Vorkommen):
set "Zeile=%Zeile:date=Datum%"
Zusatzfrage: Welche Funktion hat die offene Klammer in den Zeilen 18 und 19 ? Ohne diese lief es auch
Die Klammer (könnte auch zB "." oder "\" sein) nach dem "echo" stammt noch aus einem ersten Ansatz und hatte nur den Zweck, die Ausgabe einer Leerzeile zu ermöglichen, falls die gesuchte Zeile nicht gefunden worden wäre - sie schadet zwar weiterhin nicht, kann aber, wenn ohnehin sichergestellt ist, dass es die "date"-Zeile in der Datei gibt, genauso wie die Zeilen 11 und 13 - 16 entfallen ...

Grüße
bastla
Bitte warten ..
Mitglied: Andreas72
25.08.2013, aktualisiert um 23:47 Uhr
Hallo bastla,
vielen Dank, es klappt nun damit. Einfacher als gedacht . Ich spiele mich mal mit der Lösung kommende Woche und falls ich noch Nachfragen habe, melde ich mich nochmal. Diese Frage markiere ich mit "gelöst".

Grüße.

Andreas
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Word bestimmt Sprache selbst
gelöst Frage von honeybeeMicrosoft Office1 Kommentar

Hallo, habe in Word 2016 ein nerviges Problem: Auf meinem Computer (Windows 10) sind zwei Sprachen installiert: Deutsch und ...

Mac OS X
Safari öffnet bestimmt Seite nicht
Frage von tomi93Mac OS X2 Kommentare

Hallo , ich habe an einem iMac bei uns im Unternehmen das Problem das Safari dort eine bestimmte Seite ...

Hardware
Doppelt geklickt trotz Singleclick
gelöst Frage von honeybeeHardware6 Kommentare

Hallo, ich habe auf einem Tablet-PC was komisches festgestellt: Wenn ich mit einer normalen kabelgebundenen Maus auf einen Button ...

Microsoft

Über VPN nur bestimmt große Daten übertragen

gelöst Frage von Peter007Microsoft5 Kommentare

Hallo zusammen, gibt es eine Möglichkeit bei Außendienstmitarbeitern die über VPN angebunden sind, die übertragbare Datenmenge zum Fileserver über ...

Neue Wissensbeiträge
Internet

EU Urheberrechtsreform: Eingriff in die Internetkultur

Information von Frank vor 2 StundenInternet

Liebe Besucherin, lieber Besucher, warum erscheint das obere Banner in allen Beiträgen? Aus Protest gegen Teile der geplanten EU-Urheberrechtsreform ...

Windows Server
Windows Backup - FilterManager Event 3
Tipp von NixVerstehen vor 23 StundenWindows Server

Hallo zusammen, ich bin kein gelernter ITler und auch beruflich nicht in dem Feld tätig. Wir setzen in unserem ...

Windows 10

Windows 10 - Programme laufen schneller, wenn Sie mit Administratorrechten ausgeführt werden

Erfahrungsbericht von 1Werner1 vor 2 TagenWindows 1013 Kommentare

Moin, das wollte ich erst nicht glauben, aber es ist so. Wenn Ihr ein Programm mit Administratorrechten unter Windows ...

Sicherheits-Tools
Putty hat heftige Bugs korrigiert!
Information von Lochkartenstanzer vor 3 TagenSicherheits-Tools8 Kommentare

Moin, Wie man aus herauslesen kann, sind in den Versionen vor 0.71 gravierende Bugs, die es angeraten erscheinen lassen, ...

Heiß diskutierte Inhalte
Hardware
Telefonanlagen - Welche gibt es
Frage von Xaero1982Hardware38 Kommentare

Nabend Zusammen, ich suche eine neue TK Anlage und mein Auftraggeber will jetzt was völlig neues - State of ...

Server-Hardware
Kompatibilität Tray für HP Proliant DL385 G10 vs. G8, G9
Frage von chris123Server-Hardware19 Kommentare

Hallo, weiß einer der hier anwesenden, ob die Trays für 2,5 " HDDs zwischen einem DL 385 G10 und ...

Outlook & Mail
Office 365 mit Email-Profil installieren
gelöst Frage von 139221Outlook & Mail18 Kommentare

Hallo, kurz zu meiner Person: Vor ungefahr 10 Jahren habe ich eine Umschuldung zum Fachinformatiker für Systemintegration gemacht aber ...

LAN, WAN, Wireless
Intel(R) PRO Wireless 3945ABG
gelöst Frage von Leon509LAN, WAN, Wireless15 Kommentare

Hallo, habe ein Laptop Fujitsu (Intel, 4GB, 2GHz, Windos10, Intel(R) PRO/Wireless 3945ABG ) ein O2 DSL Anschluss Home50. Leider ...