numberseven
Goto Top

bat Datei mit verzeichnis aus ini Datei

Hallo Welt

Ich hatte mit batch-Dateien bis jetzt nicht allzuviel zu tun, darum hier meine Frage.

Ich besitze eine ini Datei in der bei einer Installation der vom User ausgewählte Verzeichnispfad abgelegt wurde.

pfad.ini

[Pfad]
Directory=A:\Verzeichis\

Nun möchte eine bat Datei erzeugen die sich diesen Pfad nimmt, dorthin springt und die dort befindliche Datei ausführt.

Wer kann mir helfen?

Dank im voraus

Content-Key: 119890

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

Ausgedruckt am: 28.03.2024 um 10:03 Uhr

Mitglied: mike55
mike55 07.07.2009 um 12:30:57 Uhr
Goto Top
Hallo,

Ich würde dir VBScript empfehlen. Mit der Batch bekommst du das meiner Meinung nach nicht hin.

Unter Google findest du jede Menge dazu.

Grüße
Mitglied: 80220
80220 07.07.2009 um 12:43:43 Uhr
Goto Top
Hallo und willkommen im Forum. face-wink

Enthält die ini-Datei nur die 2 Zeilen?
Mitglied: Biber
Biber 07.07.2009 um 12:57:00 Uhr
Goto Top
Moin numberseven,

willkommen im Forum.

Du bekommst die relevante Zeile aus der *.ini-Datei, indem Du nach "Directory=" suchst.
Und die eine Zeile lässt sich mit einer FOR/F-Anweisung passend portionieren.

Beispiel am CMD-Prompt:
>for /f "tokens=1* delims==" %i in ('findstr /i "directory=" pfad.ini') do @echo set "pfad=%j"  
set "pfad=A:\Verzeichis\"  

Somit hättest Du den Pfad in einer Variablen im Batch.

Grüße
Biber

P.S. @mike55
Eigentlich schade, dass es mit Batch nicht geht..
Mitglied: miniversum
miniversum 07.07.2009 um 12:57:08 Uhr
Goto Top
Wenn es Directory nur einmal in dieser Datei gibt kannst du's so machen:
@echo off
FOR /F "tokens=2 delims==" %%i in ('findstr /B "Directory=" "pfad.ini"') do set "Directory=%%i"  
if "%Directory%" equ "" (echo Directory nicht gefunden! & Pause & goto:eof)  
pushd %Directory%
echo mache hier in %Directory%
Pause
popd
Soll wirklich nach [Pfad] -> Directory gesucht werden dann so:
@echo off
FOR /F "tokens=2 delims==" %%i in ('findstr /B /N "[Pfad]" "pfad.ini"') do set "skiped=%%i"  
if "%skiped%" equ "" (echo [Pfad] nicht gefunden! & Pause & goto:eof)  
set "Directory="  
FOR /F "skip=%skiped% tokens=2 delims==" %%i in ('findstr /B "Directory=" "pfad.ini"') do if not defined Directory set "Directory=%%i"  
if "%Directory%" equ "" (echo Directory nicht gefunden! & Pause & goto:eof)  
pushd %Directory%
echo mache hier in %Directory%
Pause
popd
Das ganze ist ungetestet, also ausprobieren.
Mitglied: numberseven
numberseven 07.07.2009 um 12:58:05 Uhr
Goto Top
Ja nur diese zwei Zeilen. Die Installationsroutine übergibt nur diesen Wert an die ini
Mitglied: TsukiSan
TsukiSan 07.07.2009 um 13:02:01 Uhr
Goto Top
Hallo mike55

mit batch ist das nur ein Einzeiler, wenn die Infos richtig in der ini-Datei stehen. Beispiel:
REM In C:\Text.txt steht C:\TestOrdner\Test.exe
for /f %%i in (c:\text.txt) do start %%i

Also einfacher als mit vbs. Ansonsten wie schon oben beschrieben die "findStr"-Methode dazunehmen und nach dem eigentlichen Eintrag suchen. Das geht bestens mit Batch-Dateien.

Tsuki
Mitglied: numberseven
numberseven 07.07.2009 um 13:13:16 Uhr
Goto Top
Vielen vielen Dank hat super geklappt.
Wenn ich weitere Fragen habe weiß ich ja jetzt an wen ich mich wenden muss.