pit0711
Goto Top

Schreiben und lesen von Batch Variablen in eine ini Datei

Hallo,

ich sitze gerade an einer Batchdatei die automatisiert immer nur die neuesten Dateien auf ein Netzlaufwerk kopieren soll.
Bei jedem Ausführen der Datei wird ein neuer Ordner erstellt mit der aktuellen Uhrzeit. Projektname und Pfad sollen beim frischen installieren Batch aubgefragt werden.


Jetzt habe ich das Problem das ich einfach nicht durchblicke wie man mit dem for Befehl Variablen in eine Datei schreiben/lesen kann.

Hier das Batch file:

@echo off
title Datensicherung
color 2
cls
type logo

@rem Variablen festlegen
@rem Doppelpunkte aus Zeitangabe entfernen
set h=%time:~0,2%
set m=%time:~3,2%
set s=%time:~6,2%
set zeit3=%h%%m%%s%


@rem Doppelpunkte aus Datum entfernen
@rem noch nicht implementiert


@rem Prüfen ob Konfiguration schon vorhanden
if exist dasi.ini goto ablauf
set /p name=Projektname eingeben (ohne Leerzeichen)

@rem Prüfen ob Konfiguration schon vorhanden
if exist dasi.ini goto ablauf
set /p pfad=Exe Pfad eingeben: (Bsp: D:\Daten\)

@rem Projektname und Projektpfad in Datei schreiben
@rem Wie geht das?


:ablauf

@rem Pfad und Projektname aus dasi.ini auslesen und in Variable schreiben
@rem Wie geht das???


@rem Pfad und Name auf Bildschirm anzeigen
echo Projektname: %name%
echo EXE Pfad: %pfad%

@rem Netzlaufwerk verbinden
net use Y: \\xxx.79.225.xxx /user:xxx xxx
y:
cd \

@rem Prüfen ob Ordner vorhanden, wenn nicht dann wird er erstellt
if exist Datensicherung goto x
mkdir Datensicherung
cd Datensicherung

:x
cd Datensicherung
if exist %name% goto x1
mkdir %name%
cd %name%

:x1
cd %name%
if exist %date% goto x2
mkdir %date%

:x2
cd %date%
@rem Zeit Ordner erstellen
mkdir %zeit3%
cd %zeit3%

@rem Kopieren der Dateien
:copy
xcopy %pfad%\*.jpg Y:\Datensicherung\%name%\%date%\%zeit3%
xcopy %pfad%\*.exe Y:\Datensicherung\%name%\%date%\%zeit3%
xcopy %pfad%\*.dat Y:\Datensicherung\%name%\%date%\%zeit3%


@rem netzlaufwerk trennen
net use Y: /d

@rem Variablen killen

set name=
set pfad=
set zeit3=
set time=

echo Datensicherung erfolgreich ausgeführt
break 2
pause
exit

Content-Key: 109576

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

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

Member: lowbyte1
lowbyte1 Feb 20, 2009 at 13:40:46 (UTC)
Goto Top
hi pit0711

Ich finde so etwas für Batch viel zu gewagt ,da Du Dich um Sachen kümmern musst die Du in einer Programmiersprache wie zbsp. c oder c++ oder auch visual basic einfach nicht hast.
Weil Batch einfach nicht für sowas ausgelegt ist.
Ansonnsten wird dir sicher ein Batch spezialist wie biber oder bastla weiterhelfen.


lowbyte
Member: bastla
bastla Feb 20, 2009 at 13:49:34 (UTC)
Goto Top
Hallo pit0711 und willkommen im Forum!
Variablen in eine Datei schreiben/lesen
Die einfachste Variante sähe etwa so aus:
Wähle ein einheitliches Präfix für Deine Variablen, etwa "_DaSi_" (die Variablen hießen dann zB %_DaSi_Pfad%, %_DaSi_Name%, etc) - damit würde für das Schreiben genügen:
set _DaSi_>dasi.ini
Wieder einlesen könntest Du die Variablen mit
for /f "delims=" %%i in (dasi.ini) do set "%%i"
Das "Killen" der Variablen ist übrigens unnötig, wenn Du an den Anfang des Batches ein "setlocal" setzt - damit werden alle an Variablen vorgenommenen Änderungen (inkl Erstellen) durch ein "endlocal" (und das wird beim Beenden des Batches automatisch ausgeführt) verworfen.
@lowbyte1
Wo siehst Du Probleme?

Grüße
bastla
Member: lowbyte1
lowbyte1 Feb 20, 2009 at 14:11:49 (UTC)
Goto Top
helo

Einfach umständlich das ganze, aber das ist wohl ansichtssache.
Aber im nachhinein muss ich dir recht geben ,so complex wird diese Lösung in batch auch nicht.

lowbyte