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 letzen vorkommenden Suchtext in einer Datei finden und in andere Datei einfügen bzw. ersetzen

Mitglied: CrazyCat-1

CrazyCat-1 (Level 1) - Jetzt verbinden

02.06.2006, aktualisiert 06.06.2006, 5523 Aufrufe, 11 Kommentare

Gleich mal vorweg: Ich weiß es gibt schon ähnliche Themen in der Datenbank, aber die haben mir nicht wirklich weitergeholfen.

Ich suche einen Weg Daten zu aktualisieren.


Ich habe z.B. eine Datei namens 1234.dfx in der eine Reihe von Messwerten steht. Über den Key K0005 wird die Zeitangabe signalisiert.
Dieser Key und die Zeitangabe kommen in der dfx - Datei mehrfach vor.

Die letzte Zeitangabe nach dem dem K0005 soll gelesen werden und den Wert des Keys K1205 in der Datei 1234.dfd überschreiben.



Es kann vorkommen das mehrere dfd und dfx - Daten gleichzeitig im Verzeichnis sind. (z.B. 1234.dfd, 1234.dfx, 1235.dfd, 1235.dfx,....)
In diesem Fall soll die Zeitangabe der 1234.dfx in die 1234.dfd, die Zeitangabe der 1235.dfx in die 1235.dfd usw. übernommen werden.

Die Zeitangabe erfolgt im Format dd:mm:yy/hh:mm:ss

Ist so etwas über ein VB - SKript oder eine Batch - Datei realisierbar?

Ich lese mittlerweile schon stundenlang Optionslisten von DOS - Befehlen und komme einfach nicht weiter.
Mitglied: Biber
02.06.2006 um 11:22 Uhr
Rückfrage:
Ist die Datei in der Form
K0005=dd:mm:yy/hh:mm:ss
....
K005=dd:mm:yy/hh:mm:ss
...

aufgebaut?

Dann zieht der FIND-Befehl alle K0005-Zeilen aus der Datei.

find "K0005" 1234.dfx

...und davon den letzten:

For /f "delims=" %i in ('find "K0005" 1234.dfx') do Set "lastK0005=%i"

Gruß
Biber
Bitte warten ..
Mitglied: CrazyCat-1
02.06.2006 um 11:33 Uhr
Das Format ist genaugesagt dieses K0005 02.06.06/12:12:12

Mit dem find Befehl finde ich die letzte Zeile in der der Key vorkommt, das weiß ich bereits.

Nur wie kann ich die Zeile kopieren und in eine andere Datei einfügen, das ganze nach Möglichkeit auch noch mit variablen Dateinamen, bei denen nur die Endung übereinstimmt?
Bitte warten ..
Mitglied: Biber
02.06.2006 um 11:58 Uhr
Skizze:
01.
::[im Batch:] 
02.
 
03.
For %%i in (*.dfx) do call :findAndCopy %%i 
04.
goto :eof 
05.
:FindAndCopy Para1 = name.ext der dfx-Datei 
06.
Set "lastK0005=" 
07.
For /f "delims=" %i in ('find "K0005" 1234.dfx') do Set "lastK0005=%i" 
08.
If [%lastK0005%]=[] goto :eof 
09.
Echo %lastK0005% >>%~n1.dfd 
10.
goto :eof
Gruß
Biber
Bitte warten ..
Mitglied: CrazyCat-1
02.06.2006 um 12:23 Uhr
OK. Vorerst habe ich noch 2 Probleme.

1. Die Batch läuft nicht, Set last"K0005=K0005/0 0""0]=[]" ist syntaktisch an dieser Stelle nicht verarbeitbar.

2. Wie kann ich den Wert nach dem Änfügen in die DFD - Datei in eine bestimmte Zeile verschieben und den Eintrag in der Zeile überschreiben.
Momentan würde afaik der Wert an der letzten Zeile angefügt.
Bitte warten ..
Mitglied: CrazyCat-1
02.06.2006 um 12:56 Uhr
Planänderung!

Ich denke es ist einfacher eine weitere Datei zu senden, welche die Zeitangaben enthält.

Somit entfällt das Suchen.

Die Frage die sich jetzt stellt ist:

Wie verschiebe ich diese Angabe aus der letzen Zeile an eine bestimmte Stelle und überschreibe den alten Eintrag?

Zu beachten ist, das beim ersten Aufruf der Routine noch kein Eintrag zum Überschreiben vorhanden ist.
Bitte warten ..
Mitglied: Biber
02.06.2006 um 19:48 Uhr
Hm, CrazyCat,

wenn es der späteren Lese-Routine der *.dfd-Datei nicht schadet, würde ich den alten Eintrag "K0005 bla..." einfach löschen mit
type NameDer.Dfd|find /v "K0005" >NameDer.dfd

und danach die neue Zeile ans Ende anhängen.
echo %LastK0005%>>NameDer.dfd.

Wenn es aber ein Erstzen einer bestimmte Zeile sein muss (weil der Eintrag in einer bestimmten [Section] sein muss, dann würde ich das mirt einem Search/Replace-Tool machen. Da hatten wir schon ein paar Beispiele für brauchbare Freeware-Tools in Batch und Shell.

Gruß & Vrohe Vinxten
Biber
Bitte warten ..
Mitglied: CrazyCat-1
06.06.2006 um 10:20 Uhr
An welcher Stelle der Eintrag steht sollte eigentlich egal sein, allerdings habe ich noch ein kleines Problem:

Das Löschen des alten Eintrages funktioniert nicht.

Ich habe das ganze in eine Batch - Datei intregriert:

Zuerst werden die dfx - Daten auf eine Datei zusammengefasst:

(@for /f "delims=_. tokens=1-3" %%i in ('dir /b /s /o:d c:\test\*_*.dfx') do (@type %%~dpnxi_%%j.%%k >> %%~dpnxi.%%k ))

Das funktioniert soweit.

Danach sollten der Eintrag K1205/0 und der Rest der Zeile gelöscht werden, sofern vorhanden.
Dies sollte mit dem Befehl

(@for /f "delims=_. tokens=1-3" %%i in ('dir /b /s /o:d c:\test\*.dfd') do (@type %%~dpnxi.%%k|find /v "K1205/0" > %%~dpnxi.%%k ))

erfolgen.
Dieser Befehl liefert mir aber eine leere dfd - Datei.

Anschließend wird die Zeile eingefügt mit dem Befehl

(@for /f "delims=_. tokens=1-3" %%i in ('dir /b /s /o:d c:\test\*_*.dfd') do (@type %%~dpnxi_%%j.%%k >> %%~dpnxi.%%k ))

Das funktioniert wieder.

Kannst du mir sagen wo der Fehler beim 2. Befehl liegt?
Bitte warten ..
Mitglied: CrazyCat-1
06.06.2006 um 11:43 Uhr
OK. Einen Fehler hab' ich gefunden. Ich hatte eine DFD - Datei in der nur diese Zeile stand.

Mit der wurde dann die neue Datei überschrieben.


Dafür wird jetzt die letzte Zeile nicht gelöscht. Die Zeile mit K1205/0 bleibt immmer stehen und neue Zeilen werden einfach am Ende angereiht.

Wieso wird die letzte Zeile nicht gelöscht?
Bitte warten ..
Mitglied: CrazyCat-1
06.06.2006 um 12:34 Uhr
Auch wenn's jetzt bald ein Monoloag wird:

Beim find - Befehl geht die Dateiendung verloren.

Es wird also versucht die Zeile in der Datei 1234. zu suchen, anstelle in der der Datei 1234.dfd.

Wie bekomme ich die Dateiendung wieder?
Bitte warten ..
Mitglied: CrazyCat-1
06.06.2006 um 13:32 Uhr
Des Monologes Fortsetzung:

Wenn ich die Datei 1234_dat.dfd dazunehme funktioniert der Befehl prinzipiell, aber die Daten aus dieser Datei will ich nicht dabei haben.

Wenn ich statt überschreiben, anhängen wähle, so wird die Datei bald endlos lang und die davor stehenden Einträge werden wieder nicht gelöscht.

Kann mir jetzt jemand helfen?
Bitte warten ..
Mitglied: CrazyCat-1
06.06.2006 um 14:01 Uhr
letzter Akt:

Problem gelöst!
Bitte warten ..
Ähnliche Inhalte
PHP

PHP Variable in String finden und ersetzen

Frage von LorderichPHP19 Kommentare

Hallo zusammen, da eval() sowohl aus Sicherheitsgründen als auch aus Performancegründen keine Option zu sein scheint, würde ich gern ...

Batch & Shell

String zerlegen an letzem Backslash

gelöst Frage von fuguBatch & Shell4 Kommentare

Heyho ihr Supercoder ;-) Ich möchte für ein Backup-Skript eine Textdatei mit den Backup-Quellen. Die Daten einzulesen ist leicht. ...

Batch & Shell

Ergänzen einer CSV Datei als letze Spalte mit Teil der Dateiname

Frage von moltitiBatch & Shell11 Kommentare

ich habe ca. 12000 Dateien die im Batch Betrieb ergänzt werden sollen. Der Aufbau der Dateien ist etwa so: ...

Windows 8

Mit CMD Dateien ersetzen

gelöst Frage von wlannerWindows 85 Kommentare

Hallo, ich habe einen Ordner mit verschiedenen Excel-Vorlagendateien (alle haben einen anderen Namen). Jetzt habe ich die Mustervorlage und ...

Neue Wissensbeiträge
Humor (lol)
(Part num your Hacked phone. +XX XXXXXX5200)
Erfahrungsbericht von Henere vor 2 TagenHumor (lol)4 Kommentare

Mein Handy hat aber ne ganz andere Endnummer. Muss ich mir jetzt Sorgen machen ? :-) Vielleicht betrifft es ...

Exchange Server

Letztes Update für Exchange 2016 CU9 war in gewisser Weise destruktiv

Erfahrungsbericht von DerWoWusste vor 2 TagenExchange Server6 Kommentare

Kurzer Erfahrungsbericht zu Exchange2016-KB4340731-x64 Der Exchangeserver hat wie gewöhnlich versucht, es in der Nacht automatisch zu installieren - abgesehen ...

Erkennung und -Abwehr

Neue Sicherheitslücke Foreshadow (L1TF) gefährdet fast alle Intel-Prozessoren

Information von Frank vor 3 TagenErkennung und -Abwehr3 Kommentare

Eine neue Sicherheitslücke, genannt Foreshadow (alias L1TF) wurde auf der Usenix Security 18 von einem Team internationaler Experten veröffentlicht. ...

Vmware
VMware Updates gegen L1 Lücke
Information von sabines vor 3 TagenVmware

Für die Vmware Produkte vCenter Server, ESXi, Workstation und Fusion stehe Updates bereit um die L1 Lücke zu schließen. ...

Heiß diskutierte Inhalte
Netzwerke
Netzwerk-Architektur mit VLANs
Frage von niLuxxNetzwerke25 Kommentare

Liebe Community, Ich hätte eine kurze Frage an euch. Ich werde in Kürze das Netzwerk unserer (sehr) kleinen Firma ...

Windows Server
WSUS nach Upgrade - kein Start mehr
gelöst Frage von Ghost108Windows Server9 Kommentare

Hallo zusammen, habe einen Windows Server 2012 welcher als WSUS dienst. Jetzt wurde ein Upgrade auf Server 2016 durchgeführt ...

Netzwerke
SSH - Wieso werde ich nach VPN Verbindung rausgeschmissen?
Frage von VernoxVernaxNetzwerke9 Kommentare

Hallo, ich habe es endlich geschafft mein Handy mit einer VPN Verbindung an meinen Router anzuschließen. Nach der Login ...

Microsoft
Ist es möglich ein reines Volume C Datenbackup in eine Hyper-V VM zu konvertieren?
Frage von Frank84Microsoft8 Kommentare

Hallo zusammen, ich habe hier ein Backup vorliegen, das ausschließlich das komplette C:\ Volume eines physischen Server 2012 enthält. ...