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 Microsoft Windows Tools

GELÖST

datei durchsuchen und Zeile ändern

Mitglied: Farmer

Farmer (Level 1) - Jetzt verbinden

02.08.2005, aktualisiert 17.10.2012, 13016 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:
http://www.administrator.de/forum/tool-zum-ersetzten-von-w%c3%b6rtern-u ...
http://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
Dateien in Ordner nach Backslash durchsuchen und Zeile exportieren
gelöst Frage von infowarsBatch & Shell2 Kommentare

Hi, ich habe ein kleines Problem. Ich habe einen Ordner mit Textdateien welche nach Backslashes (\) durchsucht werden sollen ...

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 ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 50 MinutenLinux

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 18 StundenTipps & 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 19 StundenSicherheit12 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 20 StundenSicherheit9 Kommentare

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

Heiß diskutierte Inhalte
Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von 92943Windows 1031 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Batch & Shell
Anmeldevorgang für Informatikraum (Schule) unter Windows
gelöst Frage von IngenieursBatch & Shell29 Kommentare

Hey zusammen, ich werde in naher Zukunft den Informatik Raum meiner jetzigen Schule von dem aktuellen Betreiber übernehmen (Vertrag ...

Netzwerkgrundlagen
Welches Modem für VDSL 50000 der T-Com
gelöst Frage von Windows10GegnerNetzwerkgrundlagen21 Kommentare

Hallo, ein Kollege von mir will sich VDSL50000 von der T-Com holen, um daran einen Server zu betreiben. Ich ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...