reisszahn2009
Goto Top

Werte per Batch in einer Datei verändern oder editieren?

Hi,
ich habe eine kleine Batch Aufgabe für die Ihr vielleicht eine nette Lösung habt.
Schon mal vielen Dank!

Ausgehend vom Gedanken einer Config-Datei z.B. für ein Backup-Script ist folgende Datei vorhanden:

Name: config.ini
Inhalt:

password=backuppasswort
backupdir="C:\Backup\"
backupname=Backup123.zip

Die Werte können problemslos geschrieben werden, z.B. :

echo Geben Sie das Passwort ein:
set/p password= >nul
echo password=%password%>> config.ini

und wieder eingelesen werden, z.B:

for /f "delims== tokens=1,2" %%i in ('findstr "password" "config.ini"') do @set password=%%j

was mir noch fehlt, ist das editieren / ändern der Werte. Dies ist z.B. beim Backupnamen notwendig, um ein Datum in den Dateinamen einzufügen. Habt ihr Ideen wie man diese Werte ändern kann? Das Trennzeichen ist immer "=".

Schon mal Danke und einen guten Rutsch!

Content-Key: 132567

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

Printed on: April 20, 2024 at 02:04 o'clock

Member: rubberman
rubberman Dec 31, 2009 at 17:19:17 (UTC)
Goto Top
Hallo Reisszahn2009,

du kannst nicht in einer Datei ändern, aber du kannst die Datei mit geänderten Daten neu schreiben.

Etwa so:
@echo off &setlocal
echo Geben Sie einen neuen Namen ein:
set /p "backupname="  

type nul>temp.txt
for /f "usebackq delims== tokens=1*" %%a in ("config.ini") do call :sub "%%a" "%%b"  
move /y "temp.txt" "config.ini"  
goto :eof

:sub
if %1=="backupname" (  
  >>temp.txt echo %~1=%backupname%
) else (
  >>temp.txt echo %~1=%~2
)
goto :eof

Grüße und auch einen guten Rutsch
rubberman

<edit: Überflüssige Zeile entfernt />