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 datei durchsuchen und Zeile ändern

Mitglied: Farmer

Farmer (Level 1) - Jetzt verbinden

02.08.2005, aktualisiert 17.10.2012, 13058 Aufrufe, 6 Kommentare

datei durchsuchen und Zeile ändern

Hallo
habe folgendes Problem
Ich müsste eine Datei (test.cfg) nach einem Wort (suchmich) durchsuchen und dann die Zahl (ändert sich von Tag zu Tag) rechts vom Wort (suchmich) ändern.

das suchen mit For in der Art
for /f %%i in ('find "suchmich" test.cfg) do set zeichen=%%i

glaube ich bringe ich noch hin, aber ich will ja die Zahl Rechts von "suchmich" (die ja nie gleich ist) ändern
(die Zeile heisst z.B suchmich = 2131536536;)
wobei sich die Zahl ja von Tag zu Tag ändert.
Das heisst, das Script müsste die Datei zeilenweise durchsuchen bis es das Wort Suchmich gefunden hat, dann alles Rechts davon löschen und durch meine vorgegeben Zahl ersetzen.

Ich hoffe Ihr könnt mir helfen.

PS:sollte ein Batch-script sein wenn möglich (win2k)
Mitglied: Biber
02.08.2005 um 14:03 Uhr
Moin, Farmer,

kann man/frau als reinen Batch machen, aber eher zu reinen Tutorial-Zwecken.
Ich würde dennoch auf ein Change/FindReplace-Replace-Utility zurückgreifen.
P.S. Es gab in der letzte Wochen schon zwei fast gleiche Anfragen (Text ersetzen mit Batch-Bordmitteln) - ist irgendwo ein Preisausschreiben mit diesen Thema angesetzt?

Strategie über Batch wäre nämlich etwas umständlich:
0. Als Parameter sollte minimal %neuerText% kommen, also z.B.
<font color=green>set neuerText=%1 </font>
1. Zeilennummer der zu ändernden Textzeile ermitteln und in Tempdatei schreiben.
Wobei natürlich suchmich, textdatei aus Variablen/Parametern ermittelt worden sein könnten.
<font color=green>Find /n "suchmich" textdatei >tempdatei </font>
2. Zeilennummer in Variable merken
<font color=green>For /F "delims=[] skip=2 " %%a in (tempdatei) do set Zeilennummer=%%a </font>
(Ergebnis: %Zeilennummer%=234 ....oder ähnlich)
3. Die Zeile mit dem "suchmich" selbst Wort für Wort bzw. Token für Token zerlegen und in Variablen "merken"
<font color=green>Find "suchmich" textdatei >tempdatei</font> ...diesmal die Zeile selbst in tempdatei
<font color=green>set /a cnt=0
for /F "skip=2 Delims=" %%a in (tempdatei) do call :loop %%a
....
:Loop</font>
[edit] Dieses For /L funktioniert nicht :---- For /L %%b In (1,1,9) do set Token%%b=%%%b [/edit]
<font color=green>set /a cnt=%cnt%+1
set Token%cnt%=%1
goto :eof
...</font>
4. den TokenX ermitteln, der gleich suchmich ist; TokenX+1 ersetzen mit dem neuen Text
<font color=green>For /L %%b In (1,1,9) do if (Token%%b)==(suchmich) Set /a TokenY=%%b+1
Set Token%TokenY%=%neuertext%</font>
5 . wieder eine ganze Zeile daraus machen. ..%Zeileneu%
<font color=green>Set Zeileneu=%Token1% %Token2% %Token3% %Token4% ...</font>
(als Delimiter hab ich Leerzeichen unterstellt, sonst bei Punkt 3 z.B delims=; angeben und hier statt Leerzeichen natürlich Semikolon angeben)
6. die Textdatei(orig) lesen und schreiben bis Zeile (Zeilennummer% minus 1) in NeuDatei
auch wieder mit einem "For /F"- Konstrukt... und einem Zähler bis %Zeilennummer% -1...
das kennen wir ja jetzt... und alles &gt NeuDatei
7. Zeile %Zeileneu% in NeuDatei schreiben
8. Rest aus Textdatei(orig) in Neudatei schreiben.
9 Sichern TextDatei(orig), Rename NeuDatei in TextDatei.

Ich kann mal sowas als Tutorial zusammenbürsten, aber ich würde das NIE im Echtbetrieb einsetzen... so einen Batch kann keiner pflegen oder nachvollziehen, wenn der Admin im Urlaub ist. Das heißt, wenn Admins Urlaub bekämen *seufz

Frank / der Biber aus Bremen
Bitte warten ..
Mitglied: Farmer
02.08.2005 um 16:43 Uhr
Hallo
wenn es leichter ist, könnte man auch sagen das script soll, jedesmal wenn es gestartet wurde, von der datei Test.cfg die Zeile 1467 durch einen Text "neuertext" erssetzen

(Das script wird im Taskplaner zu einem gewissen Zeitpunkt gestartet)
Bitte warten ..
Mitglied: Biber
02.08.2005 um 17:12 Uhr
Das würde ein paar Schritte sparen, Farmer,

Aber dieses Zerlegen in Token und wieder Zusammenfrickeln der Zeile bleibt Dir nicht erspart, wenn es ohne Text-Ersetz-Utilities laufen soll.
Und auch nicht das Schreiben der Textdatei von Zeile 1 bis (ZeileNeu-1) +Schreiben ZeileNeu + Schreiben (ZeileNeu+1)...
.. sorry, das sind die Bordmittel.

Meines Wissens jedenfalls. Deshalb nimm lieber ein fertiges ChangeText-Utility.
Biber
Bitte warten ..
Mitglied: Farmer
02.08.2005 um 17:16 Uhr
wo bekomme ich so etwas her???
Bitte warten ..
Mitglied: Biber
02.08.2005, aktualisiert 17.10.2012
siehe z.B. die Links der aktuellen Threads:
https://www.administrator.de/forum/tool-zum-ersetzten-von-w%c3%b6rtern-u ...
https://www.administrator.de/forum/batch-programmierung%2c-dateiinhalt-m ...
Ein voll ausreichendes Tool für Deinen Zweck ist das dort erwähnte Change-Utility
http://guymal.com/techCorner/Batch_File_Syntax.shtml

Andere beliebte (aber überdimensionierte) heißen FindRepl.exe oder "Search & Replace"..
frag Dr. Google.
Bitte warten ..
Mitglied: Biber
03.08.2005 um 13:20 Uhr
..übrigens,
wenn die zu ändernde Zeile in der test.cfg tatsächlich immer die Zeile 1467 ist..
... und die Suchzeile wirklich nur aus "suchmich=nnnnnnnnnnn" besteht

dann geht es auch mit dem edlin... der wird immer noch mitgeliefert
---minibatch (ohne alle prüfungen) --einzige Funktion Zeile 1467 durch "suchmich=nnnnNeu" ersetzen
@echo off
Set suchmich=DeinSuchtext
set NeuerWert=12345678
set inputfile=%temp%\edlininput.text
echo 1467 >%inputfile%
echo %suchmich%=%NeuerWert% >>%inputfile%
echo e >>%inputfile%
edlin test.cfg<%inputfile%
--- end of minibatch
Biber

[edit] einen Tach später
oder, wenigstens ein kleines bisschen variabler:
----minibatch2
@echo off
Set suchmich=DeinSuchtext
set NeuerWert=12345678
find "%suchmich%" test.cfg
if errorlevel 1 goto end <font color=green>nur wenn suchmich in test.cfg gefunden wird</font>
set inputfile=%temp%\edlininput.text
echo s%suchmich% >%inputfile% ...... <font color=green>suchmich suchen</font>
echo d >>%inputfile% ..............<font color=green>diese Zeile löschen</font>
echo i >>%inputfile% ...............<font color=green>Zeile neu einfügen</font>
echo %suchmich%=%NeuerWert% >>%inputfile%
echo e >>%inputfile%
edlin test.cfg<%inputfile%
:end
--- end of minibatch2
[/edit]
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batchdatei: Datei nach bestimmten Zeilen durchsuchen und in anderer Datei einfügen

Frage von Vit1985Batch & Shell1 Kommentar

Hallo, ich möchte mit einem batch aus einer *.msg Datei 4 Zeilen heraussuchen und diese Zeilen sollen dann in ...

Batch & Shell

Batch Datei durchsuchen und nach String eine zusätzliche Zeile einfügen

gelöst Frage von Borob14Batch & Shell5 Kommentare

Hi zusammen habe schon einiges in der Richtung in diesen und anderen Foren durchgelesen, verstehe den Syntax aber nicht ...

VB for Applications

Jede Zeile einer Textdatei bis zum Trennzeichen durchsuchen

gelöst Frage von karolsonVB for Applications6 Kommentare

Hallo an alle, Ich möchte mit VBA eine 50MB große Textdatei nach einer Zeichenkette durchsuchen und einige Begriffe aus ...

Ausbildung

Durchsuchen alle Zeilen einer Textdatei und die gleiche Zeilen herausfiltern und anzeigen

gelöst Frage von MihailAusbildung17 Kommentare

Guten Abend, Ich melde mich ernuet mit der Bitte mir falls möglich zu helfen. Ich muss aus einigen txt-Dateien ...

Neue Wissensbeiträge
Linux Netzwerk

Installation eines Logservers mit Loganalyzer als Debian-VM auf Hyper-V

Anleitung von lcer00 vor 13 StundenLinux Netzwerk

Zuerst sei auf den schönen Beitrag von aqui hier im Forum verwiesen, in dem die loganalyzer-installation bereits beschrieben ist: ...

Humor (lol)
Antennagate 2018
Information von magicteddy vor 13 StundenHumor (lol)2 Kommentare

Da haut der angekaute Elektronikhersteller die teuersten Geräte auf den Markt und bekommt anscheinend die Basics mal wieder nicht ...

Datenschutz

Die Datenkrake Google verlängert ihr Arme mal wieder ein wenig, automatische Anmeldung

Tipp von magicteddy vor 1 TagDatenschutz3 Kommentare

Benutzer mit einem Google Account und gespeicherten Zugangsdaten werden von chrome 69 automatisch bei Google angemeldet, natürlich alles zum ...

Verschlüsselung & Zertifikate
Meine Wissenssammlung zu Bitlocker
Erfahrungsbericht von DerWoWusste vor 2 TagenVerschlüsselung & Zertifikate3 Kommentare

Die Motivation für diesen Beitrag waren die vielen Posts rund um dieses Thema, die deutlich machen, wie viele Einzelaspekte ...

Heiß diskutierte Inhalte
E-Mail
Welche ist die beste E-Mail Groupware für die Zukunft?
Frage von ITCrowdSupporterE-Mail24 Kommentare

Guten Tag allerseits :) Ich möchte mich mit einer Frage heute mal an die Schwarmintelligenz wenden. Aktuell befasse ich ...

Firewall
Wesyb Offline
Frage von DkuehlbornFirewall14 Kommentare

Hallo Kollegen, ein Kunde hat von Wesyb die Sicherheitslösung im Einsatz. Seit August scheint deren Internetseite nicht mehr verfügbar ...

Video & Streaming
DVD auf Festplatte sichern
Frage von Thor01Video & Streaming13 Kommentare

Hallo, mittlerweile hat meine DVD Sammlung ein alter erreicht wo die eine oder andere DVD schon das Zeitliche gesegnet ...

Server-Hardware
Empfehlung für Hardware eines Software Routers
Frage von janosch12Server-Hardware12 Kommentare

Hallo Gemeinde, ich brauche von euch ein paar Tipps in Sachen Router-Hardware. Aktuell haben wir auf einem 2 HE ...