Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Batch - Mehrere Text Dateien Lesen und bestimmtes Wort, bestimmte Worte durch neue ersetzen

Frage Entwicklung Batch & Shell

Mitglied: DimitriW

DimitriW (Level 1) - Jetzt verbinden

05.05.2010, aktualisiert 10:52 Uhr, 5525 Aufrufe, 2 Kommentare

Guten Tag erstmal.
Ich habe ein kleines Problem.
Ich möchte eine Batch Datei erstellen, diese in mehreren Texten ein Wort oder Text suchen soll und dessen durch ein neues zu ersetzen hat.
Darauf soll die Datei abgespeichert werden.

echo off
for /F "delims=" %%A in ('Findstr /i /M /C:"xxx" *.txt') do SET %%A=fff

Momentan sieht es bei mir so aus.
Aus irgendeinen Grund, versteht er nicht was ich machen möchte.

Also am Ende, soll statt dem xxx ein FFF stehen.

Mit freundlichen Grüßen DimitriW
Mitglied: LotPings
05.05.2010 um 11:21 Uhr
Zitat von DimitriW:
Momentan sieht es bei mir so aus.
Aus irgendeinen Grund, versteht er nicht was ich machen möchte.

Du weisst schon, das Computer absolut stumpfsinnig (und sehr schnell) genau das machen was man Ihnen sagt.

Das Problem ist nicht, das der Computer dich nicht versteht, eherr umgekehrt, du verstehst nicht, was du IHM sagen musst damit er genau das tut, was du möchtest.

Ergänze das oben um eine Zeile mit dem Befehl: set , damit du siehst, was du veranlasst hast.

Davon abgesehen, ist Batch nicht sehr gut geeignet beliebeigen Text zu ersetzen. Es müsen alle Dateien gelesen und wenn es etwas auszutauschen ggfs komplett neu geschrieben werden wobei dann der Begriiff in der Zeile ausgetauscht wird.

Gruß
LotPings
Bitte warten ..
Mitglied: Biber
05.05.2010 um 20:39 Uhr
Moin DimitriW,

um das Ganze mal etwas abzukürzen... du hast das falsche Werkzeug gewählt.

Das "FindStr.exe"-Utility ist nützlich, mächtig, unverzichtbar am CMD-Prompt....aber es ist ein reines Nur-Lese-Werkzeug.
Sucht nach Strings und meldet Fundstellen OHNE Änderungen am Original vorzunehmen.

Also ungeeignet für deinen Plan.

Ein unter günstigen Umständen gern praktizierter Workaround per Batch ist die Strategie:
Lese aus einer Textdatei A jede gatesverdammte Zeile aus und
  • Prüfe, ob ein bestimmter "Suchstring" in dieser Zeile ist
  • wenn ja, schreibe diese eine Zeile nach dem Ersetzen von "Suchstring" durch "NeuerString" in Datei B
  • wenn nein, schreibe diese eine Zeile unverändert in Datei B
Wenn du damit durch bist, lösche Original A und benenne B um in A.

Hört sich holprig an, ist es aber auch.
Deshalb hat das Lordchen dieses Thema auch nicht weiter schmackhaft gemacht.

Was du für dein Problem eigentlich brauchst ist ein Editor, den aber nicht du manuell bedienst, sondern der (wenn er die Regeln kennt) aus einem Input-Stream (Originaldatei) einen Output-Stream (geänderte Datei) ohne weiteres Benutzerzutun erzeugen kann.

Glücklicherweise wurde ein derartiger Stream-Editor bereits erfunden und naheliegenderweise haben die Entwickler ihn "SED" für "Stream-Editor" genannt.

Nach einem "Sed für Windows" solltest du mal kurz suchmaschinen, dann kommst du weiter.
Und gegebenfalls wieder.

Grüße
Biber
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...