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, 13109 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
Microsoft Office

Excel Pdf Datei als Icon Symbol in Word einfügen per Drag and drop?

gelöst Frage von GeforceMicrosoft Office4 Kommentare

Moin zusammen, ich habe hier Win 7 mit Office 2013. Leider kann ich seit dem Update von 2010 auf ...

Windows Server

Manage open files and sessions

gelöst Frage von thatsrightWindows Server10 Kommentare

Hola liebe Gemeinde, Ich hab mal ne frage Habe neu einen Filserver 2012r2, jetzt wollte/musste/sollte ich ein File schliesen, ...

Windows Userverwaltung

Identity and Access Management Programme

Frage von PulliWindows Userverwaltung1 Kommentar

Hallo, sind auf der Suche nach einem Marktführenden Produkt für Identity & Access Management. Folgendes Szenario möchten wir abbilden. ...

Batch & Shell

Drag and Drop in Powershell

gelöst Frage von mc-doubleyouBatch & Shell2 Kommentare

Hallo zusammen, inwischen habe ich mich von cmd zur Powershell vorgearbeitet, die Lösungen die mir Google aber so liefert ...

Neue Wissensbeiträge
Windows Server

Zähe Update-Installation auf Windows Server 2016

Information von kgborn vor 19 StundenWindows Server4 Kommentare

Mir sind in der Vergangenheit immer wieder Beschwerden von Admins unter die Augen gekommen, die sich über die doch ...

Humor (lol)
Turnschuhe per Firmware lahmlegen
Information von Henere vor 21 StundenHumor (lol)5 Kommentare

Und was kommt demnächst ? Bekomme ich kein Klopapier mehr, weil der Spender einem DDOS unterliegt ? :-) Ich ...

Sicherheit

Sicherheitsrisiko in WinRAR und Co. durch Schwachstelle in UNACEV2.DLL

Information von kgborn vor 1 TagSicherheit

In der seit 2005 nicht mehr aktualisierten Bibliothek UNACEV2.DLL gibt es eine Path-Traversal-Schwachstelle. Diese ermöglicht es, bei ACE-Archiven Dateien ...

Internet

CDU Propaganda: Urheberschutz im Internet - Ende des digitalen Wild-West

Information von Frank vor 2 TagenInternet4 Kommentare

Hallo Administratoren, aus einem Kommentar heraus habe ich folgenden Beiträge von Herr Sven Schulze und Axel Voss (beide CDU ...

Heiß diskutierte Inhalte
Hardware
Frage an Kenner von 5,25 Zoll Laufwerken
Frage von DerWoWussteHardware53 Kommentare

Moin Kollegen. Hier wird gerade im Archiv gewühlt und 5,25 Zoll Disketten ("2S/HD", 96TPI) sollen eingelesen werden. Ich habe ...

Windows Tools
Dateiname Automatisch auf PDF Klartext oder als Barcode abdrucken
Frage von spongebob24Windows Tools27 Kommentare

Hallo Zusammen, habe eine tolle Anforderung bekommen. Ich sollte auf mehrere PDF Dateien Automatisch einen Stempel anbringen lassen. Toll ...

Datenbanken
PHP Fatal error: Uncaught Error: Call to undefined function oci connect
gelöst Frage von PlanitecXDatenbanken22 Kommentare

Hallo Zusammen, ich sitze seit Tagen am Problem das ich keine PHP Anwendung mit Anbindung zu Oracle zum laufen ...

Internet
SDSL oder ADSL - Preis-Leistungs-Verhältnis
Frage von ZeppelinInternet21 Kommentare

Wehrte Community, der Unterschied dieser beiden Techniken ist recht einfach erklärt. Das S, steht für Synchron (Gleich) und das ...