haufeft
Goto Top

Mehrere Zeilen der IPConfig-Ausgabe mit Batch auswerten

hallo

ich versuche verzweifelt den dateinamen nicht mit zu übernehmen

mit dem befehl lese ich die test.text, die ich mit ipconfig >>test.txt anlege:
for /f "eol=; tokens=2"delims=, %%i in ('find /i "Ethernet-Adapter" test.txt') do (echo %%i >>a.tmp)

TEST.TXT <------das sollte nicht sein
LAN-Verbindung: <---- das ":" auch nicht wenn es geht

wäre schön wenn mir jemand helfen könnte


bin der totale noob auf dem gebiet

und könnte mir auch jemand sagen wie ich ÖÄÜ u.s.w auch in einer batch nutzen kann?


mfg


[Edit Biber] Titel geändert von "dateiname nicht in Text.tmp übernehmen", weil...wegen...jedenfalls geändert. [/Edit]

Content-Key: 74541

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

Printed on: April 25, 2024 at 22:04 o'clock

Member: bastla
bastla Nov 26, 2007 at 19:10:19 (UTC)
Goto Top
Hallo haufeft!

Vielleicht beschreibst Du kurz, was Du eigentlich erreichen willst, wie etwa "die aktuelle IP-Adresse auslesen".
Wenn Du "find" durch "findstr" ersetzt, hättest Du schon einmal eines der störenden Elemente beseitigt.
Zum Thema Umlaute: Je nachdem, in welchem Zusammenhang das Problem auftaucht, könntest Du es zB mit dem Aktivieren der Codepage 1252 gleich zu Beginn Deines Batches / Deiner Eingaben an der Kommandozeile versuchen:
chcp 1252

Ansonsten auch hier: etwas mehr Info wäre hilfreich.

Grüße
bastla
Member: haufeft
haufeft Nov 26, 2007 at 19:43:07 (UTC)
Goto Top
hy und danke

ich würde dich ja heiraten aber das lass ich mal lieber :D

hat alles g.e.f.u.n.z.t *freu*

kannst du mir noch sagen wie ich die ":" raus bekomme??

der batch liest mir die namen der ethernet adapter

die brauche ich wiederum um den adapter zu konfigurieren

mfg
Member: bastla
bastla Nov 26, 2007 at 20:24:48 (UTC)
Goto Top
Hallo haufelt!

Nach Deinem Vorhaben gefragt habe ich insbesondere, weil es eigentlich auch etwas eleganter als mit Temporärdateien lösbar sein müsste, etwa:
for /f "tokens=1*" %%i in ('ipconfig^|findstr "Ethernetadapter"') do set "Adapter=%%j"  
set "Adapter=%Adapter::=%"  
echo %Adapter%
In dieser Fassung werden alle ":" im Adapternamen entfernt (genau gesagt: durch "Nichts" ersetzt) - wenn nur der ganz am Ende stehende (= das letzte Zeichen) dran glauben soll, dann als Alternative:
set "Adapter=%Adapter:~0,-1%"  

Die "echo"-Zeile ist natürlich nur Dekoration ...

Grüße
bastla
Member: haufeft
haufeft Nov 26, 2007 at 20:40:00 (UTC)
Goto Top
na das ist mal was schönes ^^


ich danke dir :D
Member: haufeft
haufeft Nov 26, 2007 at 21:51:02 (UTC)
Goto Top
ich nochmal


gibt es eine möglichkeit wenn ich mit dem befehl

for /f "tokens=1*" %%i in ('ipconfig^|findstr "haufe"') do set "adress=%%j"
set "adress=%adress::=%"

noch ca. 6 zeilen darunter auch mit auszulesen????


Ethernet-Adapter haufe:

Verbindungsspezifisches DNS-Suffix:
Verbindungslokale IPv6-Adresse . : fe80::d860:3cef:6b2:c4c1%8
IPv4-Adresse . . . . . . . . . . : 192.168.25.66
Subnetzmaske . . . . . . . . . . : 255.255.255.0
Standardgateway . . . . . . . . . : 192.168.25.201

und wie kann ich "dir" in eine variable packen???

wollte gerne einen ordner der nur *.bat hat als liste in die batch binden


mfg

gn8
Member: bastla
bastla Nov 27, 2007 at 06:48:52 (UTC)
Goto Top
Hallo haufeft!

noch ca. 6 zeilen darunter auch mit auszulesen????
ca 6 Zeilen geht nicht - genau 6 Zeilen danach, oder eine folgende Zeile, die mit "IPv4-Adresse" beginnt oder eine folgende Zeile, die "IPv6" enthält, ließe sich machen - leichter hätten wir es aber, wenn Du einfach erklärst, was Dein Ziel (Wunschergebnis) ist, Deine Ausgangsdaten (Vista-"ipconfig"-Ausgabe?) in übersichtlicher Form (dazu gibt es < code>-Tags) darstellst und vielleicht noch die Überschrift an den Inhalt des Beitrages anpasst ...

und wie kann ich "dir" in eine variable packen???
wollte gerne einen ordner der nur *.bat hat als liste in die batch binden
... wäre ebenfalls eine nähere Erklärung und ziemlich sicher einen neuen Thread wert.

Grüße
bastla
Member: haufeft
haufeft Nov 27, 2007 at 13:38:24 (UTC)
Goto Top
hallo bastla

sorry wegen den fehlenden infos face-sad

ok ich habe vor das er mir die einstellungen bestimmter lan-adapter anzeigt

soll also so ausehen
lan-adapter haufe
ip4 192.0.0.0
subnetz 255.255.255.255
gateway192.0.0.1

wenn ich das mit "ip4" auslesen will macht er das ja für jeden adapter, deswegen wollte ich es mit "adapternamen"

und 6 zeilen auslesen.

Ja das ist Vista.

die überschrift und code habe ich jetzt auch benuzt :D:D
Ethernet-Adapter haufe:

  Verbindungsspezifisches DNS-Suffix:
   Verbindungslokale IPv6-Adresse  . : fe80::d860:3cef:6b2:c4c1%8
   IPv4-Adresse  . . . . . . . . . . : 192.168.25.66
 Subnetzmaske  . . . . . . . . . . : 255.255.255.0
  Standardgateway . . . . . . . . . : 192.168.25.201

Tunneladapter LAN-Verbindung* 6:

  Medienstatus. . . . . . . . . . . : Medium getrennt
  Verbindungsspezifisches DNS-Suffix:

Tunneladapter LAN-Verbindung* 7:

  Medienstatus. . . . . . . . . . . : Medium getrennt
   Verbindungsspezifisches DNS-Suffix:

mfg
haufe
Member: bastla
bastla Nov 27, 2007 at 23:35:14 (UTC)
Goto Top
Hallo haufeft!

Das sollte so gehen:
@echo off & setlocal enabledelayedexpansion
set "Adapter=haufe"  
set "Settings=ipv4 Subnet gateway"  

set "To=adapter"  

set "ITemp=%temp%\ipconfigTemp.txt"  
ipconfig|findstr /n $>%ITemp%

for /f "delims=:" %%i in ('findstr /i "%Adapter%" %ITemp%') do set /a "Line=%%i"  
if not defined Line echo %Adapter% nicht gefunden. & goto :eof

set Next=
for /f "delims=:" %%i in ('more +%Line% %ITemp%^|findstr /i "%To%"') do if not defined Next set /a "Next=%%i"  
if defined Next (set /a Next+=%Line%) else set Next=10000

set ATemp=%temp%\GetAdapterData.txt
if exist %ATemp% del %ATemp%
for /f "tokens=1* delims=:" %%i in ('more +%Line% %ITemp%') do if %%i lss %Next% echo %%j>>%ATemp%  

for %%s in (%Settings%) do call :ProcessSetting %%s
if exist %ATemp% del %ATemp%

echo.
echo Gesetzte Variable:
set #
goto :eof

:ProcessSetting
set #%~1=
for /f "tokens=1* delims=:" %%i in ('findstr /i "%~1" %ATemp%') do if not defined #%~1 set "#%~1=%%j" & echo %~1%%j  
if defined #%~1 set "#%~1=!#%~1:~1!"  
Kurze Erläuterung:
In den ersten "set"-Zeilen kannst Du festlegen, welcher Adapter bzw welche Settings (in Form von Suchstrings - aus "optischen" Gründen kann die Angabe ohne Berücksichtigung von Groß-/Kleinschreibung erfolgen) dieses Adapters gefragt sind.

Aus Performance-Gründen (um nicht zu oft "ipconfig" aufrufen zu müssen) werden Temporärdateien verwendet. Um auf Nummer sicher zu gehen, sollen nur die zum angegeben Adapter gehörigen Zeilen ausgelesen werden. Diese Zeilen befinden sich zwischen dem Eintrag "Ethernet-Adapter haufe:" und dem nächsten Eintrag mit dem Bestandteil "adapter" (siehe Variable %To%). Die Zeilennummern der Zeilen mit den betreffenden Einträgen werden in die Variable %Line% und %Next% geschrieben. Falls keine weitere "Adapter"-Zeile mehr folgt, muss der gesamte Rest der Datei verwendet werden, wofür einfach eine (nicht erreichbare) %Next%-Zeilennummer von zB 10000 vergeben wird.

In die Auslese-Temp-Datei geschrieben werden dann alle Zeilen mit Nummern zwischen %Line% und %Next% (ohne Zeilennummer).

Für das Auslesen der Einstellungen (Adressen) wird eine Schleife verwendet, was eine sehr einfache Anpassung (durch Eintragung eines Suchstrings in die Variable %Settings%) ermöglicht.

Der für die jeweilige Einstellung in der Temp-Datei stehende Wert wird wieder per "findstr" gesucht und in eine Variable mit dem Namen "#Einstellung" (zB %#IPv4%) gespeichert sowie (zu Demozwecken) ausgegeben. Aufgrund des Zeilenaufbaues enthält die Variable zunächst noch als erste Stelle ein Leerzeichen, welches durch die letzte Batchzeile entfernt wird.

Ebenfalls als Demo gedacht ist die abschließende Ausgabe aller mit "#" beginnenden Variablen.

Grüße
bastla

P.S.: Da wir nun schon das Ganze per Batch begonnen hatten, wollte ich es auch so zu Ende bringen und habe daher auf den Vorschlag, eine Lösung in VBScript zu erstellen (für diesen Zweck eigentlich sinnvoller) verzichtet.
Member: haufeft
haufeft Nov 27, 2007 at 23:47:52 (UTC)
Goto Top
hallihallo

danke für deine hilfe
uiuiui jetzt muss ich das noch irendwie anpassen THX

ja das nächste mal nehmen wir vbs :D:D
wie würde es in VBS ausehen???
mfg
Member: Biber
Biber Nov 28, 2007 at 07:06:59 (UTC)
Goto Top
@haufeft
ja das nächste mal nehmen wir vbs :D:D
wie würde es in VBS ausehen???

Oh nein!
Nicht hier in diesem Thread.
Das üben wir mal gemeinsam aus gegebenem Anlass:
  • Du formulierst einen neuen Thread mit einer passenden Überschrift und einer verständlichen Fragestellung
  • und viele kompetente bis hochkompetente Leute werden Vorschläge zur Lösung posten.
  • und diesen Thread hier schließen wir, sobald Du bastlas Lösung getestet und/oder verstanden hast.
  • Um letzteres zu erkennen wäre ein entsprechender Kommentar von Dir oder minimal ein grüner Haken erforderlich
  • Falls Du es wagen solltest, einen neuen Thread zu eröffnen mit den zwei Zeilen "hi, wie würde die lösung für dieses Problem <linkhierdruff> in vbs aussehen?", dann werde ich als erster eine Antwort posten, wenn Du verstehst, was ich meine.

Grüße
Biber
Member: haufeft
haufeft Nov 28, 2007 at 09:17:00 (UTC)
Goto Top
HI @Biber

* Falls Du es wagen solltest, einen neuen
Thread zu eröffnen mit den zwei Zeilen
"hi, wie würde die lösung
für dieses Problem <linkhierdruff>
in vbs aussehen?", dann werde ich als
erster eine Antwort posten, wenn Du
verstehst, was ich meine.
HI Biber,

nur mal so eine Frage, geht es Dir noch gut, oder habe ich Dich angegriffen????

Ich denke Du solltes mal Deinen Umgangston schnellst möglich ändern!!!!!

Ich bin gerne bereit Kritik jeder Art über mich ergehen zu lassen.

Nur nicht in diesem Ton.


Was Ich mich wage, lasse Ich mir so von Dir bestimmt nicht sagen.

Ich glaube Du solltest Dir mal überlegen, dein Mod und oder Admin fragen, was er von Deinen Sprüchen hält!!!!

Ich habe hier NIEMANDEN angegriffen oder habe etwas GESPAMT und da muss Ich mich von Dir nicht so anmachen lassen.

Ich hoffe das es nicht zu Deinen Aufgaben gehört die User hier auf irgenwelche Art und Weise anzugreifen!!!!

Sollten in der Überschrift fehlende/falsche angaben enthalten sein so ändere diese nach gutem gewissen oder teile mir meine falschen Angaben mit

Wachsen dir deine zugewiesenen Aufgaben über deinen Kopf hinaus solltest du überdenken ob du hier sinnvoll auf diesem Posten eingesetzt bist.

Falls Du verstehst was ich meine
Kann besser kochen als programmieren. (Das glaube ich Dir)
MfG
Haufe

@bastla

Vielen Dank für Deine Hilfe, du hast mir sehr weiter geholfen.
Member: Biber
Biber Nov 28, 2007 at 10:57:23 (UTC)
Goto Top
Moin haufeft,

nur mal so eine Frage, geht es Dir noch gut, oder habe ich Dich angegriffen????
Ich möchte noch kurz erinnern daran, dass Dein ursprünglicher geposteter Beitrag so aussah:

dateiname nicht in Text.tmp übernehmen
hallo

ich versuche verzweifelt den dateinamen nicht mit zu übernehmen

mit dem befehl lese ich die test.text, die ich mit ipconfig >>test.txt anlege:
for /f "eol=; tokens=2"delims=, %%i in ('find /i "Ethernet-Adapter" test.txt') do (echo %%i >>a.tmp)   

TEST.TXT <------das sollte nicht sein
LAN-Verbindung: <---- das ":" auch nicht wenn es geht   

wäre schön wenn mir jemand helfen könnte


bin der totale noob auf dem gebiet

und könnte mir auch jemand sagen wie ich ÖÄÜ u.s.w auch in einer batch nutzen kann?


mfg
...und dass es 7 Ping-Pong-Postings gedauert hat, bis dank bastlas engelsgleicher Geduld die Infos auch Dir herausgekitzelt waren, die eigentlich in den Eröffnungsbeitrag gehörten.

Und dass der Beitrag (bis auf die von mir am 27.11. geänderte Überschrift) noch genauso aussieht.

Ja, so etwas ärgert mich schon.
Ich hoffe das es nicht zu Deinen Aufgaben gehört die User hier auf irgenwelche Art und Weise anzugreifen!!!!
Doch, es gehört zu meinen Aufgaben, User auf die eine oder andere Art anzusprechen.
Okay, ich bin vielleicht nicht ganz so geduldig, es drei- oder viermal gebetsmühlenartig zu wiederholen (ich beneide manchmal Menschen, die es so geduldig wie bastla hinnehmen).

Aber mir geht mein hanseatisches Temperament manchmal mit mir durch - curva, caramba,mir kocht der Blut! ########)...

Dafür bitte ich Dich um Nachsicht. Und meine Formulierung "Falls Du es wagen solltest, .. hätte auch nicht sein müssen. Sorry.

Die war aber auch nicht als Drohung gemeint, sondern als Feststellung.

Ich glaube Du solltest Dir mal überlegen, dein Mod und oder Admin fragen, was er von Deinen Sprüchen hält!!!!
Wenn ich eine/n finde, der über mir steht, dann werd ich ihn/sie fragen.

Wachsen dir deine zugewiesenen Aufgaben über deinen Kopf hinaus solltest du überdenken ob du hier sinnvoll auf diesem Posten eingesetzt bist.
Na ja, jede Seite hat zwei Medaillen.... meine Psychologin lebt von meinem ständigen Überdenken.
Hättest Du denn einen besseren Job für mich? *liebgugg*

Ich formuliere es lieber noch mal als Bitte:

Könnten wir diesen Thread hier als "beantwortet" und "gelöst" abschließen?
Wenn ja, setze als Signal bitte einen "Erledigt"-Haken oder poste einen entsprechenden Kommentar.

P.S.
Kann besser kochen als programmieren. (Das glaube ich Dir)
Kannst Du auch glauben.

Grüße
Biber
Member: haufeft
haufeft Nov 28, 2007 at 11:32:23 (UTC)
Goto Top
Naja vergessen wir das alles!!!!:D
die reaktion von dir wäre in ordnung wenn ich hier schon monate im forum wäre!!

eigentlich kann ich ihn noch nicht auf erledigt setzen da ich noch nicht alles verstanden habe.

(bin pfälzer) und die brauchen immer lange!!!!


der script macht genau das was ich will, nur ich bräuchte das als eingabe

echo Einstellungen >info.tmp
echo OK MITTE>>info.tmp
echo da soll die ausgabe hin>>info.tmp
echo.>>info.tmp
call winscript messagebox info.tmp

nochmal alles


mfg

und auch von mir sorry

haufe


edit was bewirkt setlocal enabledelayedexpansion am anfang der batch?

goto :eof<-- was ist mit eof wo geht er da hin?

for %%s in (%Settings%) do call :ProcessSetting %%s<- das verstehe ich nicht so ganz (%settings ist mir klar)

for /f "tokens=1* delims=:" %%i in ('more +%Line% %ITemp%') <-- zeige mir zeile 5 in ipconfigtemp lösche ":"
do if %%i lss %Next% <-- das verstehe ich auch nicht
Member: Biber
Biber Nov 28, 2007 at 16:52:29 (UTC)
Goto Top
Moin haufeft,

was bewirkt setlocal enabledelayedexpansion am anfang der batch?
"Setlocal" sollte immer mit in der ersten Zeile eines Batchfilesstehen und bewirkt, dass alle Variablen, die Du per "set meineVar=whatever" definierst local (oder "privat") sind.
Das heißt, sie existieren, solange der Batch läuft und sind danach automatisch verschwunden.
"setlocal EnableDelayedExpansion" ist ein Spezialfall und ermöglicht die so genannte "verzögerte Variablenauflösung". Damit ist es möglich, eine Variable in einer Codezeile zu definieren/zu ändern UND deren neuen Wert auszulesen.
Im (Batch-)Normalfall müssen die Variablen-Wertzuweisung und das Variablen-Wert-Lesen mindestens eine Zeile auseinanderliegen.
Falls jemals diese DelayedExpansion verwendet wird, dann müssen diese Variablen statt in der Schreibweise %var% in der Schreibweise !var! geschrieben werden.
> Ist eher etwas Spezielles, nicht üblich in Batchen außerhalb unseres Forums.
> Bei Interesse unter "Set /?" oder "Setlocal /?" nachlesen.

goto :eof<-- was ist mit eof wo geht er da hin?
Siehe bei "goto /?".
"goto :eof" ist eine fest eingebrannter Pseudo-Sprunganweisung. Es braucht KEINE Sprungmarke ":eof" existieren, denn der Interpreter übersetzt diese Anweisung sozusagen als Befehl "RETURN", und zwar
  • "Return to caller/Zurück zum Aufrufer", wenn "goto :eof" innerhalb einer Subroutine z.B. namens ":ProcessSetting" gefunden wird
  • "Return to Master/Rückkehr zum Betriebssystem", wenn diese Floskel innerhalb eines Batches (nicht in einer SubRoutine) auftaucht.

for %%s in (%Settings%) do call :ProcessSetting %%s<- das verstehe ich nicht so ganz (%settings ist mir klar)
In der Laufvariablen (auch dynamische Variable genannt) %%s, die vor der Klammer initialisiert wird, steht rechts der Klammer jeweils ein Teil, ein "Token" von %Settings%".
Und zwar in der Reihenfolgen, wie es "wortweise", durch Leerzeichen getrennt, gelesen wird.

Diese einzelnen Worte/Tokens werden nacheinander zum Aufruf eines "call :ProcessSettings" verwendet.

Ganz oben steht:
set "Settings=ipv4 Subnet gateway"
Also wird aus...
for %%s in (%Settings%) do call :ProcessSetting %%s
-> for %%s in (ipv4 Subnet gateway) do call :ProcessSetting %%s
-> call :ProcessSetting ipv4
-> call :ProcessSetting Subnet
-> call :ProcessSetting gateway

Nächste Frage:
for /f "tokens=1* delims=:" %%i in ('more +%Line% %ITemp%') <-- zeige mir zeile 5 in ipconfigtemp; lösche ":"
...hmm, fast. Zeige mir AB Zeile 5 alle Zeilen..., überspringe +%Line% Zeilen...

do if %%i lss %Next% <-- das verstehe ich auch nicht
if zahl lss anderezahl == wenn zahl LESS/kleiner als andere Zahl. Siehe unter "IF /?"

Grüße
Biber
Member: bastla
bastla Nov 28, 2007 at 17:25:20 (UTC)
Goto Top
@Biber
Danke face-smile, bin heute den ganzen Tag nicht dazu gekommen ...


@haufeft
echo da soll die ausgabe hin>>info.tmp
Du bekommst die einzelnen Adressen jeweils in einer Variable mit dem Namen "#Einstellung", daher zB
echo %#IPv4% >>info.tmp
oder auch
echo Subnetzmaske: %#Subnet% >>info.tmp
Zur Sicherheit könntest Du noch vorweg überprüfen, ob die betreffende Adresse tatsächlich gefunden wurde, also etwa
if defined #gateway echo Standardgateway=%#gateway% >>info.tmp

Grüße
bastla
Member: Biber
Biber Nov 28, 2007 at 17:46:02 (UTC)
Goto Top
@bastla
Danke , bin heute den ganzen Tag nicht dazu gekommen ...
Jederzeit gerne... aber ich habe auch grad eben erst angefangen. face-wink

Sagt Dir der Begriff Augiasstall etwas? <grinz>

Grüße
Biber
Member: haufeft
haufeft Nov 28, 2007 at 21:15:54 (UTC)
Goto Top
Guten Abend

erstmal danke an euch beide für eure hilfe.

jetzt habe ich erstmal viel nachzulesen :D:D

und noch ein problem:

@echo off & setlocal enabledelayedexpansion
set "Adapter=lan"  
set "Settings=ipv4 Subnet gateway"  

set "To=adapter"  

set "ITemp=%temp%\ipconfigTemp.txt"  
ipconfig|findstr /n $>%ITemp%

for /f "delims=:" %%i in ('findstr /i "%Adapter%" %ITemp%') do set /a "Line=%%i"  
if not defined Line echo %Adapter% nicht gefunden. & goto :eof

set Next=
for /f "delims=:" %%i in ('more +%Line% %ITemp%^|findstr /i "%To%"') do if not defined Next set /a "Next=%%i"  
if defined Next (set /a Next+=%Line%) else set Next=10000

set ATemp=%temp%\GetAdapterData.txt
if exist %ATemp% del %ATemp%
for /f "tokens=1* delims=:" %%i in ('more +%Line% %ITemp%') do if %%i lss %Next% echo %%j>>%ATemp%  

for %%s in (%Settings%) do call :ProcessSetting %%s
if exist %ATemp% del %ATemp%

echo.
echo Gesetzte Variable:
set #
goto :eof

:ProcessSetting
set #%~1=
for /f "tokens=1* delims=:" %%i in ('findstr /i "%~1" %ATemp%') do if not defined #%~1 set "#%~1=%%j"   
if defined #%~1 set "#%~1=!#%~1:~1!"  

echo test>info.tmp
echo ok>>info.tmp
echo %#IPv4% >>info.tmp
echo.>>info.tmp
call winscript messagebox info.tmp 

wenn ich das so aufrufe (was ja geht :D:D *FREU*) ist das letzte problem das er mir das fenster 3x öffnet

wie bekomme ich das weg?

@Biber

 Wortschatz -   Von Canossa-Gang bis Dulzinea
(grch. Sagen), König Augias hatte einen ungeheuren Rinderstall mit 3.000 Rindern, deren Mist seit 30 Jahren nicht ausgeräumt worden war. Der griechische Held Herkules (Sohn des Gottes Zeus) vollbrachte die Riesenreinigung an einem Tag, indem er zwei Öffnungen in die Stallmauern riss und die Flüsse Alpheus und Peneus vereinigte und hindurchleitete. Diese spülten den Unrat gründlich fort. Wenn wir eine unangenehme Aufgabe erledigen müssen bzw. eine durch lange Vernachlässigung entstandene sehr große Unordnung aufräumen müssen, dann sagt man auch >den Augiasstall ausmisten< (reinigen).

nur so zur info :D:D


mfg
haufe
Member: bastla
bastla Nov 28, 2007 at 21:28:15 (UTC)
Goto Top
Hallo haufeft!

Ersetze (oder ergänze) einfach den Teil
echo.
echo Gesetzte Variable:
set #
durch Deine "echo"-Zeilen - der Batch endet nämlich (mit "goto :eof") bereits vor dem Unterprogramm ":ProcessSetting".

Bei der jetzigen Platzierung befinden sich Deine Ausgabezeilen im Unterprogramm und werden daher bei jedem Aufruf desselben (für jede Einstellung) mit ausgeführt.

Grüße
bastla

P.S.: Vielleicht solltest Du auch den Begriff "Rhetorische Frage" nachschlagen ... face-wink
Member: haufeft
haufeft Nov 28, 2007 at 21:49:52 (UTC)
Goto Top
Hallo basla
P.S.: Vielleicht solltest Du auch den Begriff "Rhetorische Frage" nachschlagen ... face-wink
Touché :D:D

ok so wie du das sagst geht das, nur geht es mir darum das ich den script noch in meine batch einbauen will.

aslo könnte ich ja nichts mehr under deinem script einfügen oder kann ich das irgendwie umgehen?


PS: Ich weiss dass ich nerve

mfg haufe
Member: bastla
bastla Nov 28, 2007 at 22:04:46 (UTC)
Goto Top
Hallo haufeft!

Zum einen könntest Du alles Weitere auch vor dem Unterprogramm einfügen, andererseits würde, wie von Biber oben beschrieben, ein "goto :eof" nach dem Unterprogramm ein "Return" bedeuten und damit das Unterprogramm abschließen, sodass Du danach eine weitere Sprungmarke anbringen (und anspringen) könntest - Struktur dann etwa:
...
...
set #
goto :Weiter

:ProcessSetting
set #%~1=
for /f "tokens=1* delims=:" %%i in ('findstr /i "%~1" %ATemp%') do if not defined #%~1 set "#%~1=%%j"   
if defined #%~1 set "#%~1=!#%~1:~1!"  
goto :eof

:Weiter
echo test>info.tmp
echo ok>>info.tmp
echo %#IPv4% >>info.tmp
echo.>>info.tmp
call winscript messagebox info.tmp
...
...

PS: Ich weiss dass ich nerve
Bis jetzt noch nicht; ich sag schon Bescheid, wenn's soweit ist. face-wink

Grüße
bastla
Member: haufeft
haufeft Nov 29, 2007 at 08:32:28 (UTC)
Goto Top
Guten Morgen @all

Nach mehreren Tagen ist es passiert!!!!!

ES GEHT :D:D:D

Vielen Dank an Biber und Bastla!!

Ich komme wieder :D:D

MfG

Haufe
Member: Biber
Biber Nov 29, 2007 at 08:40:22 (UTC)
Goto Top
@haufeft
Ich komme wieder :D:D
Drohungen und Einschüchterungen sind laut Forumsrichtlinien nur ModeratorInnen erlaubt. face-big-smile

Bitte den nächsten Beitrag auch auf "gelöst" setzen, wenn die Frage hinreichend beantwortet ist.

Diesmal setze ich den Thread auf "Beantwortet" und "Geschlossen".

Grüße
Biber
Member: Biber
Biber Dec 03, 2007 at 06:44:34 (UTC)
Goto Top
-- Beitrag wieder geöffnet wegen eines neuen Problems -- wegen PN haufeft --
Details folgen von haufeft...

Grüße
Biber
Member: haufeft
haufeft Dec 03, 2007 at 08:18:09 (UTC)
Goto Top
Hallo Biber

Danke für das öffnen des Threads.


hab jetzt gemerkt das wenn der pc mehrere lankarten hat nur eine gezeigt wird.

da hab ich das mit

for /f "tokens=1*" %%i in ('ipconfig^|findstr /i "Ethernet-Adapter"') do echo %%~nj>>%TEMP%\tete\nea1.tmp

gelöst nur leider bringt er mir jetzt ":" am ende jeder zeile

und das müsste auch weg.
mit set und :~0,-1 hab ich auch schon probiert bekomme aber da immer nur den ersten wert .


mfg haufe
Member: Biber
Biber Dec 03, 2007 at 08:35:10 (UTC)
Goto Top
Moin haufeft,

versuche es mal mit...
for /f "tokens=1,2 delims=: " %%i in ('ipconfig^|findstr /i "Ethernet-Adapter"') do echo %%~j>>%TEMP%\tete\nea1.tmp  

Grüße
Biber
Member: haufeft
haufeft Dec 03, 2007 at 11:27:21 (UTC)
Goto Top
Moin Biber

leider funktioniert es nicht face-sad

meine ipconfig:
Windows-IP-Konfiguration


Ethernet-Adapter Local Area Connection:

   Verbindungsspezifisches DNS-Suffix: 
   Verbindungslokale IPv6-Adresse  . : fe80::d860:3cef:6b2:c4c1%8
   IPv4-Adresse  . . . . . . . . . . : 192.168.25.25
   Subnetzmaske  . . . . . . . . . . : 255.255.255.0
   Standardgateway . . . . . . . . . : 192.168.25.201

Ethernet-Adapter VMware Network Adapter VMnet1:

   Verbindungsspezifisches DNS-Suffix: 
   Verbindungslokale IPv6-Adresse  . : fe80::f089:6cb5:1432:b051%13
   IPv4-Adresse  . . . . . . . . . . : 192.168.183.1
   Subnetzmaske  . . . . . . . . . . : 255.255.255.0
   Standardgateway . . . . . . . . . : 

Ethernet-Adapter VMware Network Adapter VMnet8:

   Verbindungsspezifisches DNS-Suffix: 
   Verbindungslokale IPv6-Adresse  . : fe80::a11e:7f93:dfa7:c7ce%15
   IPv4-Adresse  . . . . . . . . . . : 192.168.211.1
   Subnetzmaske  . . . . . . . . . . : 255.255.255.0
   Standardgateway . . . . . . . . . : 

Tunneladapter LAN-Verbindung* 6:

   Medienstatus. . . . . . . . . . . : Medium getrennt
   Verbindungsspezifisches DNS-Suffix: 

Tunneladapter LAN-Verbindung* 7:

   Medienstatus. . . . . . . . . . . : Medium getrennt
   Verbindungsspezifisches DNS-Suffix: 

Tunneladapter LAN-Verbindung* 11:

   Medienstatus. . . . . . . . . . . : Medium getrennt
   Verbindungsspezifisches DNS-Suffix: 

Tunneladapter LAN-Verbindung* 12:

   Medienstatus. . . . . . . . . . . : Medium getrennt
   Verbindungsspezifisches DNS-Suffix: 

mit deiner zeile bekomme ich nur
Local
VMware
VMware

hast du noch eine andere idee?

mfg
Member: Biber
Biber Dec 03, 2007 at 11:42:15 (UTC)
Goto Top
Moin haufeft,

was soll's, dann hängen wir halt noch eine FOR/F-Anweisung dahinter....
...
for /f "tokens=1*" %%i in ('ipconfig^|findstr /i "Ethernet-Adapter"') do (  
     for /f "delims=:" %%a in ("%%j") do @echo %%a   
)

Output:
Local Area Connection
VMware Network Adapter VMnet1
VMware Network Adapter VMnet8
... as should do...

Grüße
Biber
Member: haufeft
haufeft Dec 03, 2007 at 11:55:11 (UTC)
Goto Top
Output:
Local Area Connection
> VMware Network Adapter VMnet1
> VMware Network Adapter VMnet8
> 
... as should do...

Grüße
Biber


und bing bang booooommmmm face-smile es geht


Danke

mfg haufe