Frage im Bereich

Variablen aus Text-Dateien in Batch-Einlesen

Geschrieben von nemolyx am 2006/07/07 um 21:15:25 Uhr, 4 Antworten, 11400 Aufrufe, Status: gelöstDer Beitrag gilt als gelöst

Hallo alle zusammen,

auch wenn es vielleicht schön öfters angesprochen wurde, habe ich zu meinen Problem noch keinen Beitrag gefunden.
Mein Problem schildert sich wie folgt. Ich habe ein LoginScript geschrieben, welches die Pfadangaben als Variablen aus der "config.ini" auslesen und übernehmen soll. Inhaltlich sehen die Files wie folgt aus:

config.ini

setupsource=d:\meine programme\



LoginScript.cmd

@echo off
set setupsource=
set tmpDatei="E:\projekte\Batch Scripting\config.ini"

for /F %%x in ('findstr /i /r "setupsource" %tmpDatei%') do @set input=%%x
if not %ERRORLEVEL% == 0 goto fehler
set setupsource=%input:~9,30%
goto ende

:fehler

:ende


Mein Problem ist nun das bei der Übergabe der Variable %setupsource% statt "d:\meine programm" nur "d:\meine" übernommen wird.
Wie schaffe ich es das die komplette Zeile ausgelesen wird??? Hoffe ihr könnt mir weiterhelfen!!!




Vielen Dank im voraus
Veröffentlichen Sie diesen Beitrag in Ihrem sozialen Netzwerk
4 Antworten
1
Beagle schreibt am 2006/07/07 um 22:10:57 Uhr
2
nemolyx schreibt am 2006/07/07 um 22:47:18 Uhr
den beitrag kenn ich.

Die Werte werden nach der Eingabe zB: "ClickMe2=welt da bin ich" (also mehrere Wörter mit Leerzeichen getrennt) korrekt in die "werte.txt" geschrieben. Jedoch ist mir die Syntax beim Auslesen ein wenig schleierhaft :

for /f "delims== tokens=1,2" %i in (werte.txt) do @Set %i=%j

also ich konnte damit keine werte auslesen. Zur Testzwecken habe ich die Syntax wie folgt angepasst:

for /f "delims== tokens=1,2" %%i in (werte.txt) do @echo %%i

Aber es werden keine Werte ausgegeben.
3
nemolyx schreibt am 2006/07/07 um 23:28:08 Uhr
Kaum machts man richtig, gehts...! Lag wohl Kaffee!*g

Hier nochmal wie es funktioniert:

config.ini
source=c:\my programs
destination=d:\meine programme

LoginScript
for /f "delims== tokens=1,2" %%i in ('findstr "source" werte.txt') do @set source=%%j
echo das Quellverzeichnis ist %source%
4
Biber schreibt am 2006/07/07 um 23:45:57 Uhr
...bin mir keiner Schuld bewusst...

Bei mir tut es so (am CMD-Prompt):
01.
$cmd$set pr 
02.
PROCESSOR_ARCHITECTURE=x86 
03.
PROCESSOR_IDENTIFIER=x86 Family 15 Model 1 Stepping 2, GenuineIntel 
04.
PROCESSOR_LEVEL=15 
05.
PROCESSOR_REVISION=0102 
06.
ProgramFiles=C:\Programme 
07.
PROMPT=$$cmd$$$ 
08.
 
09.
$cmd$set pr>werte.txt 
10.
 
11.
$cmd$for /f "delims== tokens=1,2" %i in (werte.txt) do @Echo Set "%i=%j" 
12.
Set "PROCESSOR_ARCHITECTURE=x86" 
13.
Set "PROCESSOR_IDENTIFIER=x86 Family 15 Model 1 Stepping 2, GenuineIntel" 
14.
Set "PROCESSOR_LEVEL=15" 
15.
Set "PROCESSOR_REVISION=0102" 
16.
Set "ProgramFiles=C:\Programme" 
17.
Set "PROMPT=$$cmd$$$" 
18.
 
19.
$cmd$

Gruß
Biber