[Batch]Inhalt von .ini in Variable laden

R.A.M

Stammgast
Guten Abend zusammen.

Ich möchte mir ein kleines Batch schreiben, welches mir Backups macht. Es baut folgendermassen auf:
- konfigurator.bat schreibt backupquelle und -ziel in getrennte .ini-files.
- backup.bat lädt die daten der .ini in eine Variable und führt anschliessend das Backup aus

der Code der konfigurator.bat sieht so aus:
Code:
@echo off
title backup v.1.2
set /p backupdir=Bitte geben Sie den Speicherort der zu sichernden Daten an: 
echo %backupdir%>bbdir.ini
echo.
set /p backupdestdir=Bitte geben Sie den Zielort des Backups an: 
echo %backupdestdir%>bbdest.ini

Der Inhalt einer .ini speichert nur den Text der eingegeben wird. Beispiel:
Code:
C:\Users

Nun möchte ich im Backupbatch die Daten einlesen und in eine Variable schreiben, die dann im Robocopy ausgeführt wird. Ich habe viel gegooglt aber noch nichts funktionierendes gefunden. Kann mir jemand zeigen, was ich brauche um das ganze einzulesen?
Die backup.bat sieht momentan so aus:
Code:
@echo off
title backup v.1.2
echo Lese Voreinstellungen aus...
type bbdir.ini>%backupdir%
type bbdest.ini>%backupdestdir%
echo Auslesen abgeschlossen. Beginne mit Kopiervorgang.
robocopy %backupdir% %backupdestdir%\%date% /MIR /FFT /NS /NC /NDL

nun funktioniert das mit dem type-Befehl nicht. Er kann zwar den Text anzeigen, aber wird in keine Variable geschrieben. Das Programm stürzt mit einem Syntaxsfehler ab.
Habe das ganze auch mit FOR schleifen ausprobiert, aber habe auch Syntaxfehler bekommen...

Noch einen schönen Abend und grüsse
R.A.M
 

win7expert

Mitglied
Hallo R.A.M

Leider kannst du mit Hilfe von Type keinen Inhalt einer Datei in eine Variable schreiben.

Dazu würde ich eine FOR-Schleife benutzen:

Code:
:: Ausgabe wird ab jetzt unsichtbar
@echo off

:: Übernommene Elemente aus deiner Batch Datei
title backup v.1.2
echo Lese Voreinstellungen aus...

:: FOR-SCHLEIFE, welche Zeile für Zeile ausliest und dir den Inhalt in einer Variable (%%a) ablegt 

for /F "delims=" %%a in (%cd%\bbdir.ini) do set backupdir=%%a
for /F "delims=" %%b in (%cd%\bbdest.ini) do set backupdestdir=%%b

:: Übernommene Elemente aus deiner Batch Datei
echo Auslesen abgeschlossen. Beginne mit Kopiervorgang...
robocopy %backupdir% %backupdestdir%\%date% /MIR /FFT /NS /NC /NDL

So... Das ist meine Lösung für dein Problem... Nun kannst du es testen ;)
 
Oben