chef1568
Goto Top

Mit Batch Zeilen aus TXT modifizieren

Hallo zusammen,

leider konnte ich mit den bisherigen Threads mein Problem bisher nicht lösen.

Problemstellung:
In einer Textdatei sind Variablen mit Werten definiert - nun möchte ich via Batch die Variablenwerte ersetzen.

Textdatei.txt
Head=Text1
Description=Beschreibung
Config=Configuration1
Age=365
Cycle=3

Ziel:
Variablenwert für 'Config' und 'Cycle' ändern
Head=Text1
Description=Beschreibung
Config=Configuration2
Age=365
Cycle=6


Danke für euere Unterstützung,
Gruß Feder

Content-Key: 351118

Url: https://administrator.de/contentid/351118

Ausgedruckt am: 28.03.2024 um 18:03 Uhr

Mitglied: rubberman
Lösung rubberman 08.10.2017 aktualisiert um 15:38:52 Uhr
Goto Top
Du kannst keine Änderungen mitten in einer Datei vornehmen. Es ist aber möglich die Datei mit geänderten Werten neu zu schreiben und die Originaldatei zu ersetzen.
@echo off &setlocal
set "file=test.txt"  
set "Config=Configuration2"  
set "Cycle=6"  

setlocal EnableDelayedExpansion
<"!file!" >"!file!.~tmp" (  
  for /f %%i in ('type "!file!"^|find /c /v ""') do for /l %%j in (1 1 %%i) do (  
    set "line=" &set /p "line="  
    if not defined line (
      echo(
    ) else for /f "delims==" %%k in ("!line!") do (  
      if "%%k"=="Config" (  
        echo Config=!Config!
      ) else if "%%k"=="Cycle" (  
        echo Cycle=!Cycle!
      ) else echo(!line!
    )
  )
)
move /y "!file!.~tmp" "!file!"  
Grüße
rubberman
Mitglied: 134464
134464 08.10.2017 aktualisiert um 15:33:21 Uhr
Goto Top
Man man man so viel Zeilen für nüscht, Powershell:
(gc 'c:\datei.txt') -replace '^Config=.*','Config=BlaBlaBla' | sc  'c:\datei.txt'  
Andere Ersetzung analog dazu ...
Mitglied: rubberman
rubberman 08.10.2017 aktualisiert um 15:38:02 Uhr
Goto Top
Hallo Phönix

Man man man
Wenn es eine Frage nach einer Powershell-Lösung gewesen wäre, hätte ich mich zurückgehalten.

Grüße
rubberman
Mitglied: chef1568
chef1568 08.10.2017 um 16:04:52 Uhr
Goto Top
Danke,
funktioniert super!

Grüße,
Feder