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!
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!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 132567
Url: https://administrator.de/contentid/132567
Ausgedruckt am: 08.11.2024 um 02:11 Uhr
1 Kommentar
Hallo Reisszahn2009,
du kannst nicht in einer Datei ändern, aber du kannst die Datei mit geänderten Daten neu schreiben.
Etwa so:
Grüße und auch einen guten Rutsch
rubberman
<edit: Überflüssige Zeile entfernt />
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 />