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

Frage Entwicklung Batch & Shell

GELÖST

Inhalt einer .txt-Datei kopieren und dazu 8 Zeilen umbenennen

Mitglied: FlorianHH

FlorianHH (Level 1) - Jetzt verbinden

14.03.2011, aktualisiert 13:16 Uhr, 4109 Aufrufe, 6 Kommentare

Hallo,
ich bin absoluter Neuling bei der Batch-Programmierung und hoffe ihr könnt mir helfen .
Ich möchte folgendes realisieren:

Ich habe eine .txt-Datei (test.txt) welche ungefähr 1,5 MB groß ist und um die 3000 Zeilen hat.

In dieser Datei sind 8 Zeilen die ich umbenennen muss.
Diese 8 Zeilen sind aber nicht immer an der gleichen Position in der Datei. (Mal in Zeile 5-12, mal 8-15 usw.)

In der Ausgangsdatei (test.txt) haben sie immer den gleichen Namen.
In der neuen Datei (neu.txt) ist der Name auch fest definiert.

So sieht z.B. ein Ausschnitt der Text-Datei aus, die ich bearbeitet haben möchte:

01.
# DE0000101010100000000000000001101 DE0000101010100000000000000001101 1-1:2.9.1 Standort1 
02.
# DE0010101010100000000000011001916 DE0010101010100000000000011001916 1-1:1.9.1 Standort2 
03.
# DE0002020202000000000000000000798 Kabel 630, Eingang 1 1-1:3.9.1 Standort3.1 
04.
# DE0000202020200000000000000000798 Kabel 630, Eingang 1 1-1:4.9.1 Standort3.2 
05.
# DE0003030303000000000000000000798 Kabel 630, Eingang 1 Standort3.3 
06.
# DE0000303030300000000000000000798 Kabel 630, Eingang 1 Standort3.4 
07.
# DE0004040404000000000000000000799 Kabel 631, Eingang 2 1-1:3.9.1 Standort4.1 
08.
# DE0000404040400000000000000000799 Kabel 631, Eingang 2 1-1:4.9.1 Standort4.2 
09.
# DE0005050505000000000000000000799 Kabel 631, Eingang 2 Standort4.3 
10.
# DE0000505050500000000000000000799 Kabel 631, Eingang 2 Standort4.4 
11.
# DE0006060606000000000000011004973 DE0006060606000000000000011004973 1-1:1.9.1 Standort5 
12.
# DE0000606060600000000000011047601 DE0000606060600000000000011047601 1-1:1.9.1 Standort6 
13.
# DE0007070707000000000000011048154 DE0007070707000000000000011048154 1-1:1.9.1 Standort7

Und so soll die Text-Datei nach dem durchlaufen der Batch-Datei aussehen:
01.
# DE0000101010100000000000000001101 DE0000101010100000000000000001101 1-1:2.9.1 Standort1 
02.
# DE0010101010100000000000011001916 DE0010101010100000000000011001916 1-1:1.9.1 Standort2 
03.
# DE0002020202000000000000000000798 DE0002020202000000000000000000798 1-1:3.9.1 Standort3.1 
04.
# DE0000202020200000000000000000798 DE0000202020200000000000000000798 1-1:4.9.1 Standort3.2 
05.
# DE0003030303000000000000000000798 DE0003030303000000000000000000798 Standort3.3 
06.
# DE0000303030300000000000000000798 DE0000303030300000000000000000798 Standort3.4 
07.
# DE0004040404000000000000000000799 DE0004040404000000000000000000799 1-1:3.9.1 Standort4.1 
08.
# DE0000404040400000000000000000799 DE0000404040400000000000000000799 1-1:4.9.1 Standort4.2 
09.
# DE0005050505000000000000000000799 DE0005050505000000000000000000799 Standort4.3 
10.
# DE0000505050500000000000000000799 DE0000505050500000000000000000799 Standort4.4 
11.
# DE0006060606000000000000011004973 DE0006060606000000000000011004973 1-1:1.9.1 Standort5 
12.
# DE0000606060600000000000011047601 DE0000606060600000000000011047601 1-1:1.9.1 Standort6 
13.
# DE0007070707000000000000011048154 DE0007070707000000000000011048154 1-1:1.9.1 Standort7

Dort wo im oberen Ausschnitt Kabel 630/631 Eingang 1/2 steht muss stattdessen der Code der direkt davor steht nochmal stehen.

IST:
01.
# DE0002020202000000000000000000798 Kabel 630, Eingang 1 1-1:3.9.1 Standort3.1
SOLL:
01.
# DE0002020202000000000000000000798 DE0002020202000000000000000000798 1-1:3.9.1 Standort3.1
Der gesamte Rest der Datei ist aber auch wichtig und muss komplett mit kopiert werden, so dass die neue Datei genau den gleichen Inhalt darstellt wie die alte, aber mit den 8 geänderten Zeilen.


Ich habe leider noch keinen genauen Ansatz und hoffe ich habe mich verständlich ausgedrückt und dass ihr mir helfen könnt!

Vielen Dank schonmal im Voraus!
Mitglied: Edi.Pfisterer
14.03.2011 um 12:52 Uhr
Hallo!
Nachdem Dir nach einigen Stunden immer noch niemand geantwortet hat, vermute ich mal, dass es daran liegt, dass Deine Fragestellung etwas unklar ist...

evtl könntest Du (evtl. vernünftig formatiert mit < code > bzw. nach dem Ende < / code > - nat. ohne lerrzeichen) einige Zeilen deiner test.txt posten und anschließend daran, wie das Teil nach der bearbeitung aussehen soll...
bzw.: woran erkennt man die von Dir gesuchten Zeilen???

lg
Bitte warten ..
Mitglied: FlorianHH
14.03.2011 um 13:18 Uhr
Hallo,

Erstmal danke für die Antwort und den Tipp!

Habe meinen Beitrag editiert und erweitert.

Hoffe es ist jetzt verständlicher was ich erreichen möchte

lg
Bitte warten ..
Mitglied: FlorianHH
14.03.2011 um 14:16 Uhr
Keiner eine Idee oder einen Tipp?

Oder ist meine Fragestellung immernoch zu unklar vielleicht?

Ich hoffe doch sowas ist überhaupt möglich mit einer Batch was ich da vor habe zu realisieren...
Bitte warten ..
Mitglied: pieh-ejdsch
14.03.2011 um 14:25 Uhr
moin FlorianHH,

klar ham wir nen Tipp oder noch besser gleich die passende Batch.

01.
@echo off&setlocal disabledelayedexpansion 
02.
 
03.
set "Datei=Datei.txt" 
04.
set "Ausgabe=Datei2.txt" 
05.
 
06.
set "Suche=Eingang" 
07.
set "Suche2=Kabel" 
08.
set "Ersetzen=!line:~0,36!!line:~2,33!!line:~56!" 
09.
 
10.
findstr /n "%Suche%" "%Datei%"|findstr "%Suche2%">"%temp%\Suche" 
11.
findstr /n "^" "%Datei%">"%temp%\Numbered" 
12.
for /f "usebackq delims=:" %%i in ("%temp%\Suche") do ( 
13.
	if defined Firstline for /f %%j in ('set /a "A = %%i - BeforeLine"') do ( 
14.
		if %%j equ 1 ( 
15.
			for /f %%k in ('set /a "A = %%i - Firstline"') do ( 
16.
				if %%k equ 7 set "Lastline=%%i" 
17.
				if %%k equ 8 set "Firstline="&set "Lastline=" 
18.
19.
		) else if not defined Lastline set "Firstline=" 
20.
21.
	if not defined FirstLine set "Firstline=%%i" 
22.
	set "BeforeLine=%%i" 
23.
24.
25.
for /f "usebackq delims=" %%i in ("%temp%\Numbered") do ( 
26.
	set "Line=%%i" 
27.
	setlocal enabledelayedexpansion 
28.
	for /f "delims=:" %%j in ("%%i") do ( 
29.
		if %%j geq %Firstline% if %%j leq %lastline% ( 
30.
			set "Line=!Line:*:=! 
31.
			set "Line=%Ersetzen%" 
32.
			echo.!Line! 
33.
			set "OK=1" 
34.
35.
		if not defined OK ( 
36.
			set "Line=!Line:*:=! 
37.
			echo.!Line! 
38.
	)	) 
39.
	endlocal 
40.
 
41.
42.
)>"%Ausgabe%"
Gruß Phil
Bitte warten ..
Mitglied: FlorianHH
14.03.2011 um 14:30 Uhr
wow....

Das war mein erster Gedanke eben :D

Habs direkt ausprobiert und es funktioniert einwandfrei !!!

Vielen, vielen Dank Phil !!!
Bitte warten ..
Mitglied: pieh-ejdsch
14.03.2011 um 14:35 Uhr
setzt Du dann Bitte noch die Frage auf gelöst mit dem grünen Hacken

Danke

Gruß Phil
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
PDF Dateien nach Inhalt einer TXT Datei umbenennen
gelöst Frage von Chris1979Batch & Shell2 Kommentare

Hallo zusammen, ich stehe gerade vor einem Problem und hätte eine Frage zur Umsetzung. Ich bin mit der Batch ...

Batch & Shell
Dateien nach Inhalt umbenennen
gelöst Frage von IcemaniacBatch & Shell4 Kommentare

Hallo Community, ich hoffe Ihr könnt mir weiter helfen. Ich habe in einem Ordner hunderte txt-Dateien auf einem Windows-PC, ...

Batch & Shell
Kopieren von Dateien aus .txt Liste
Frage von mippselBatch & Shell2 Kommentare

Hallo zusammen, ich habe folgendes Problem: Von den über 2000 pdf/docx Dateien würde ich mir gerne gewisse Dateien in ...

Batch & Shell
Zeile von einer Bat-Datei in eine andere kopieren
gelöst Frage von Nick.BBatch & Shell6 Kommentare

Ich wollte eine Zeile von einer Bat-Datei in eine andere schreiben, dies habe ich auch mit echo geschafft aber ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 1 TagLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 2 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 2 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 2 TagenSicherheit10 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Batch & Shell
Meltdown Microsoft Prüf Script - .zip Datei leider leer
gelöst Frage von MasterBlaster88Batch & Shell13 Kommentare

Hallo zusammen, ich patche gerade unsere Windows Server bzgl. der Meltdown Lücke. Patch vorhanden, Reg Keys gesetzt Um das ...

Batch & Shell
Shell-Skript - Syntax error: Unterminated quoted string
Frage von newit1Batch & Shell13 Kommentare

Hallo Ich schreibe ein Skript das eine CSV-Datei in eine mySQL Datenbank schieben soll. Bekomme nach start des Skrips ...

E-Mail
Erfahrungen mit hMailServer gesucht
Frage von it-fraggleE-Mail10 Kommentare

Hallo, meine neue Stelle möchte einen eigenen Mailserver. Ich als Linuxkind war direkt geistig mit Postfix dabei. Leider wollen ...

Entwicklung
VBS: alle PDF-Dateien in einem Ordner gleichzeitig öffnen
gelöst Frage von JuweeeEntwicklung9 Kommentare

Hallo, ich habe in deiner Ordnerstruktur (.\Tagesberichte\xx.18\) mehrere dynamische PDF-Formulare (mit LCD erstellt). Die Berichtsformulare sind im Layout alle ...