Einstellungen von INI-Datei für BAT-Datei verwenden
Hallo,
ich möchte Werte aus einer INI-Datei in meiner BAT-Datei verwenden. Habe jedoch folgendes Prolem, dass nicht nur die Werte sondern auch die Bezeichnung mit importiert wird.
---BAT-Datei-Auszug---
set /p proxy= | type proxconfig.ini | find "Proxy="
---BAT-Datei-Auszug-ENDE---
Das Ergebnis sieht so aus:
Ich möchte aber nur den Wert, sprich "10.10.0.1", nicht auch das "Proxy=".
Danke für alle Antworten im Voraus
JK
ich möchte Werte aus einer INI-Datei in meiner BAT-Datei verwenden. Habe jedoch folgendes Prolem, dass nicht nur die Werte sondern auch die Bezeichnung mit importiert wird.
---BAT-Datei-Auszug---
set /p proxy= | type proxconfig.ini | find "Proxy="
---BAT-Datei-Auszug-ENDE---
Das Ergebnis sieht so aus:
Ich möchte aber nur den Wert, sprich "10.10.0.1", nicht auch das "Proxy=".
Danke für alle Antworten im Voraus
JK
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 17004
Url: https://administrator.de/forum/einstellungen-von-ini-datei-fuer-bat-datei-verwenden-17004.html
Ausgedruckt am: 26.12.2024 um 13:12 Uhr
5 Kommentare
Neuester Kommentar
...
for /f "tokens=1,2 delims==" %%i in ('type proxconfig.ini^|find /i "Proxy="') do Set Proxy=%%j
:: Jetzt steht es in der Variablen Proxy (falls es in der *.ini-Datei war)
:: Allerdings alles nach dem Gleichheitszeichen.
:: Wenn da keine Leerzeichen stehen, dann ok-
::Sonst noch eine Zeile zum Leerzeichen entfernen
Set "Proxy=%Proxy: =%" && rem Ersetze alle Leerzeichen durch Nix; siehe Set /?
::Test:
echo Variable Proxy ist jetzt [%Proxy%]
...
Leider nicht, Biber. Mein Testergebnis mit deinem Versuch war proxy="==10.10.0.1". Das war nicht so ganz das Ziel.
@JK87: Dein "Set"-Befehl kann so bleiben, wie er ist. Hier ist meine Lösung:
Alles bis ausschließlich Offset 6 wird gelöscht. Den Offset erhälst du, wenn du alle Zeichen bis zum gewünschten zählst und die Zahl dekrementierst (mit 1 subtrahierst).
@JK87: Dein "Set"-Befehl kann so bleiben, wie er ist. Hier ist meine Lösung:
>echo %proxy%
Proxy=10.10.0.1
>set proxy=%proxy:~6%
Moin nullplan001,
nun bin ich aber verwirrt...
Ich habe den oben abgedruckten Schnipsel (um eine neue erste Zeile "@echo off & Find /v "::" %0" ergänzt) unter dem Namen "TestProxy.bat" gespeichert.
Mit einer Proxconfig.ini des Inhalts:
ergibt sich beim Aufruf:
Z:\>
for /f "tokens=1,2 delims==" %%i in ('type proxconfig.ini^|find /i "Proxy="') do Set Proxy=%%j
Set "Proxy=%Proxy: =%" && rem Ersetze alle Leerzeichen durch Nix; siehe Set /?
echo Debugoutput: Variable Proxy ist jetzt [%Proxy%]
Debugoutput: Variable Proxy ist jetzt [10.10.0.1]
..as should do...
Wenn ich allerdings Deine Variante probiere:
bekomme ich etwas anderes raus. Ich habe es grad unter W2K versucht.
[Edit] Lesefehler. Siehe unten.[/Edit]
Funktionieren würde natürlich (ohne das Minuszeichen):
Grüße Biber
nun bin ich aber verwirrt...
Ich habe den oben abgedruckten Schnipsel (um eine neue erste Zeile "@echo off & Find /v "::" %0" ergänzt) unter dem Namen "TestProxy.bat" gespeichert.
Mit einer Proxconfig.ini des Inhalts:
[meinProxy]
Proxy=10.10.0.1
ergibt sich beim Aufruf:
Z:\>
TestProxy.bat
TESTPROXY.BATfor /f "tokens=1,2 delims==" %%i in ('type proxconfig.ini^|find /i "Proxy="') do Set Proxy=%%j
Set "Proxy=%Proxy: =%" && rem Ersetze alle Leerzeichen durch Nix; siehe Set /?
echo Debugoutput: Variable Proxy ist jetzt [%Proxy%]
Debugoutput: Variable Proxy ist jetzt [10.10.0.1]
..as should do...
@echo ^%proxy^%: [%proxy%] ...^%proxy:~-6^%: [%proxy:~-6%]
%proxy%: [Proxy=10.10.0.1] ...%proxy:~-6%: [10.0.1]bekomme ich etwas anderes raus. Ich habe es grad unter W2K versucht.
[Edit] Lesefehler. Siehe unten.[/Edit]
Funktionieren würde natürlich (ohne das Minuszeichen):
@echo ^%proxy^%: [%proxy%] ...^%proxy:~6^%: [%proxy:~6%]
%proxy%: [Proxy=10.10.0.1] ...%proxy:~6%: [10.10.0.1]Grüße Biber
Hi all,
@Biber:
Ich glaube, das Minus entsprang deiner Phantasie. Guck nochmal richtig hin. Ich habe den Code seit meinem Post nicht editiert. Geschworen. Aber stimmt, mit Minus gibt es Müll, genaugenommen die hinteren sechs Zeichen. Wenn du aber schon ein Minus dazuerfindest, kannst du auch gleich die sechs umdrehen. Dann stimmts wieder:
<tt>[%proxy:-9%]:[10.10.0.1].</tt>
Aber nur, solange die IP-Adresse genau 9 Zeichen lang ist. Dazu gibt's aber INI-Dateien, dass die IP auch mal länger werden kann, z.B.: 192.168.1.205. Mit dem wegradieren des Wortes "Proxy=" kommst du aber in jedem Fall ans Ziel, selbst wenn die Zeile lautet: "Proxy=Ich.bin.dooof.kann.noch.nicht.mal.dooof.schreiben" Dann wird die Verbindungssoftware aber rummopen, dass es keinen Computer des gegebenen Namens gibt.
@Biber:
Ich glaube, das Minus entsprang deiner Phantasie. Guck nochmal richtig hin. Ich habe den Code seit meinem Post nicht editiert. Geschworen. Aber stimmt, mit Minus gibt es Müll, genaugenommen die hinteren sechs Zeichen. Wenn du aber schon ein Minus dazuerfindest, kannst du auch gleich die sechs umdrehen. Dann stimmts wieder:
<tt>[%proxy:-9%]:[10.10.0.1].</tt>
Aber nur, solange die IP-Adresse genau 9 Zeichen lang ist. Dazu gibt's aber INI-Dateien, dass die IP auch mal länger werden kann, z.B.: 192.168.1.205. Mit dem wegradieren des Wortes "Proxy=" kommst du aber in jedem Fall ans Ziel, selbst wenn die Zeile lautet: "Proxy=Ich.bin.dooof.kann.noch.nicht.mal.dooof.schreiben" Dann wird die Verbindungssoftware aber rummopen, dass es keinen Computer des gegebenen Namens gibt.
Sorry 1000x, nullplan,
mit dem Minus hab ich mich wirklich verlesen. Nehme alles zurück - dann hattest Du recht: mit "substring(proxy, 6)" oder wie auch immer die Syntax dafür im CMD-Interpreter heißt, funktioniert es natürlich. War keine Absicht. Wirklich nur Lesefehler.
Spricht auch nichts dagegen, Deine Lösung zu nehmen. Der String "Proxy=", der ja gesucht wird, ist nun wirklich immer 6 Zeichen lang.
Schönen Abend
Biber
mit dem Minus hab ich mich wirklich verlesen. Nehme alles zurück - dann hattest Du recht: mit "substring(proxy, 6)" oder wie auch immer die Syntax dafür im CMD-Interpreter heißt, funktioniert es natürlich. War keine Absicht. Wirklich nur Lesefehler.
Spricht auch nichts dagegen, Deine Lösung zu nehmen. Der String "Proxy=", der ja gesucht wird, ist nun wirklich immer 6 Zeichen lang.
Schönen Abend
Biber