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-ID: 119890

Url: https://administrator.de/forum/bat-datei-mit-verzeichnis-aus-ini-datei-119890.html

Ausgedruckt am: 22.04.2025 um 08:04 Uhr

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
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?
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..
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.
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
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
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.