Variablen aus ini file in batch einlesen
Ein freundliches goooood Morning,
hab mal wieder ein Problemchen was ich nicht verstehe.....
ich möchte Variablen aus einer ini einlesen.... aber das script macht was anderes???
Hier vielleicht nur mal das Beispiel mit mit "net use"
meine config.ini:
set DIR_CMD=C:\solutio\Server\PostgreSQL\bin
set PGHOST=Schulungsserver
set Notfall_PGHOST=NotServer
set PGDATABASE=solutiodb
set PGUSER=postgres
set PGPASSWORD=12345
set PGPORT=5432
set DST_PATH=\\%NOTFALL_PGHOST%\Charly$
set DST_FILE=ProduktivServer.backup
set CMD_DUMP=%DIR_CMD%\pg_dump.exe
set CMD_REST=%DIR_CMD%\pg_restore.exe
set CMD_SQL=%DIR_CMD%\psql.exe
set CMD_DUMP_ALL=%DIR_CMD%\pg_dumpall.exe
set NET_USE_?=z
hier einen Auszug von meinem mein
Das Problem ist das er mir das Laufwerk zwar verbindet (z), aber lokal z: auf Notserver und nicht Schulungsserver ??
genauso beendet er den Prozess lokal und nicht auf dem Remotesystem??
Wo ist da mein Denkfehler ?
Grüße Frank
hab mal wieder ein Problemchen was ich nicht verstehe.....
ich möchte Variablen aus einer ini einlesen.... aber das script macht was anderes???
Hier vielleicht nur mal das Beispiel mit mit "net use"
meine config.ini:
set DIR_CMD=C:\solutio\Server\PostgreSQL\bin
set PGHOST=Schulungsserver
set Notfall_PGHOST=NotServer
set PGDATABASE=solutiodb
set PGUSER=postgres
set PGPASSWORD=12345
set PGPORT=5432
set DST_PATH=\\%NOTFALL_PGHOST%\Charly$
set DST_FILE=ProduktivServer.backup
set CMD_DUMP=%DIR_CMD%\pg_dump.exe
set CMD_REST=%DIR_CMD%\pg_restore.exe
set CMD_SQL=%DIR_CMD%\psql.exe
set CMD_DUMP_ALL=%DIR_CMD%\pg_dumpall.exe
set NET_USE_?=z
hier einen Auszug von meinem mein
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
@echo off
set "inifile=config.ini
for /f "tokens=2 delims==" %%i in ('findstr "/c:Notfall_PGHOST=" \\127.0.0.1\charly$\Charly\TEST_mit_INI\config.ini') do set NOTFALL_PGHOST=%%i
for /f "tokens=2 delims==" %%i in ('findstr "/c:PGHOST=" \\%NOTFALL_PGHOST%\charly$\TEST_mit_INI\config.ini') do set PGHOST=%%i
for /f "tokens=2 delims==" %%i in ('findstr "/c:DIR_CMD=" \\%NOTFALL_PGHOST%\charly$\TEST_mit_INI\config.ini') do set DIR_CMD=%%i
for /f "tokens=2 delims==" %%i in ('findstr "/c:PGDATABASE=" \\%NOTFALL_PGHOST%\charly$\TEST_mit_INI\config.ini') do set PGDATABASE=%%i
for /f "tokens=2 delims==" %%i in ('findstr "/c:PGUSER=" \\%NOTFALL_PGHOST%\charly$\TEST_mit_INI\config.ini') do set PGUSER=%%i
for /f "tokens=2 delims==" %%i in ('findstr "/c:PGPASSWORD=" \\%NOTFALL_PGHOST%\charly$\TEST_mit_INI\config.ini') do set PGPASSWORD=%%i
for /f "tokens=2 delims==" %%i in ('findstr "/c:PGPORT=" \\%NOTFALL_PGHOST%\charly$\TEST_mit_INI\config.ini') do set PGPORT=%%i
for /f "tokens=2 delims==" %%i in ('findstr "/c:DST_PATH=" \\%NOTFALL_PGHOST%\charly$\TEST_mit_INI\config.ini') do set DST_PATH=%%i
for /f "tokens=2 delims==" %%i in ('findstr "/c:DST_FILE=" \\%NOTFALL_PGHOST%\charly$\TEST_mit_INI\config.ini') do set DST_FILE=%%i
for /f "tokens=2 delims==" %%i in ('findstr "/c:CMD_DUMP=" \\%NOTFALL_PGHOST%\charly$\TEST_mit_INI\config.ini') do set CMD_DUMP=%%i
for /f "tokens=2 delims==" %%i in ('findstr "/c:CMD_REST=" \\%NOTFALL_PGHOST%\charly$\TEST_mit_INI\config.ini') do set CMD_REST=%%i
for /f "tokens=2 delims==" %%i in ('findstr "/c:CMD_SQL=" \\%NOTFALL_PGHOST%\charly$\TEST_mit_INI\config.ini') do set CMD_SQL=%%i
for /f "tokens=2 delims==" %%i in ('findstr "/c:CMD_DUMP_ALL" \\%NOTFALL_PGHOST%\charly$\TEST_mit_INI\config.ini') do set CMD_DUMP_ALL=%%i
for /f "tokens=2 delims==" %%i in ('findstr "/c:NET_USE_?=" \\%NOTFALL_PGHOST%\charly$\TEST_mit_INI\config.ini') do set NET_USE_?=%%i
wait 1
rem **Laufwerk zum Produktivserver verbinden**
IF not exist %NET_USE_?%: net use %NET_USE_?%: \\%PGHOST%\Charly$
rem ** Charly auf dem ProduktionsServer beenden**
\\%PGHOST%\c$\windows\system32\taskkill /S %PGHOST% /f /IM solutio.exe /T >nul
Pause
Das Problem ist das er mir das Laufwerk zwar verbindet (z), aber lokal z: auf Notserver und nicht Schulungsserver ??
genauso beendet er den Prozess lokal und nicht auf dem Remotesystem??
Wo ist da mein Denkfehler ?
Grüße Frank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 216294
Url: https://administrator.de/forum/variablen-aus-ini-file-in-batch-einlesen-216294.html
Ausgedruckt am: 13.04.2025 um 20:04 Uhr
17 Kommentare
Neuester Kommentar
Hallo @Mit.ohne.Ahnung,
Das sieht nach unnötig viel Code aus. Was möchtest du damit eigentlich erreichen?
Wenn du die "config.ini" (welche kein gültiges INI-File ist. Da gibt es ein bestimmtest Format) zu einer Batch machst und aus einem Skript
Gruß,
@Snowman25
Das sieht nach unnötig viel Code aus. Was möchtest du damit eigentlich erreichen?
Wenn du die "config.ini" (welche kein gültiges INI-File ist. Da gibt es ein bestimmtest Format) zu einer Batch machst und aus einem Skript
call
st, dann hast du alle Variablen gesetzt.Gruß,
@Snowman25
Moin Mit.ohne.Ahnung,
unabhängig von snowmans Hinweisen, dass dieses Konzept noch ein wenig verfeinert werden sollte - es scheitert im jetzigen Szenario an den falschen Rückgaben von FINDSTR.
Bei der Suche nach "PGHOST" wird auch "Notfall_PGHOST" zurückgegeben.
Ändere die Vaiable "PGHOST" auf "Normal_PGHOST" und suche nach diesem Namen.
Grüße
Biber
unabhängig von snowmans Hinweisen, dass dieses Konzept noch ein wenig verfeinert werden sollte - es scheitert im jetzigen Szenario an den falschen Rückgaben von FINDSTR.
Bei der Suche nach "PGHOST" wird auch "Notfall_PGHOST" zurückgegeben.
1
2
2
C:\Users\Biber>echo set Notfall_PGHOST=%DIR_CMD%\psql.exe| findstr /c:PGHOST
set Notfall_PGHOST=%DIR_CMD%\psql.exe
Ändere die Vaiable "PGHOST" auf "Normal_PGHOST" und suche nach diesem Namen.
Grüße
Biber
Hallo Frank,
Amazon ist dein Freund
http://www.amazon.de/Einstieg-Visual-Basic-2012-Programmieranf%C3%A4nge ...
Ich habe es Learning by doing , mir selbst beigebracht.
Gruß Alex
Amazon ist dein Freund
http://www.amazon.de/Einstieg-Visual-Basic-2012-Programmieranf%C3%A4nge ...
Ich habe es Learning by doing , mir selbst beigebracht.
Gruß Alex
Moin Mit.Ohne.Ahnung,
Bitte ohne "ie".
Du kannst nactürlich nach dem String "=PGHOST" suchen - den gibt es nur in einer Zeile.
Zum Thema "Will nicht wieder ganz von null anfangen"...
Wenn es aber nur bedeutet, 10 Minuten Aufwand zu haben, dann wäre es doch erwägenswert.
Grüße
Biber
Bitte ohne "ie".
eigentlich dachte ich würde das /c: davor genau das auschließen?
Warum sollte es? Du sagst doch damit nur, dass nach dem exakten String "PGHOST" gesucht werden soll - und der ist sowohl in "PGHOST" wie in "Notfall_PGHOST" enthalten.Du kannst nactürlich nach dem String "=PGHOST" suchen - den gibt es nur in einer Zeile.
1
2
2
C:\Users\Biber>echo set Notfall_PGHOST=%DIR_CMD%\psql.exe| findstr /c:"set PGHOST="
-- gibt nix zurück
Zum Thema "Will nicht wieder ganz von null anfangen"...
Wenn es aber nur bedeutet, 10 Minuten Aufwand zu haben, dann wäre es doch erwägenswert.
Grüße
Biber