Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Mehrere Zeilen der IPConfig-Ausgabe mit Batch auswerten

Frage Entwicklung Batch & Shell

Mitglied: haufeft

haufeft (Level 1) - Jetzt verbinden

26.11.2007, aktualisiert 03.12.2007, 6882 Aufrufe, 28 Kommentare

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?


Mit freundlichen Grüßen





[Edit Biber] Titel geändert von "dateiname nicht in Text.tmp übernehmen", weil...wegen...jedenfalls geändert. [/Edit]
28 Antworten
Mitglied: bastla
26.11.2007 um 20:10 Uhr
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:
01.
chcp 1252
Ansonsten auch hier: etwas mehr Info wäre hilfreich.

Grüße
bastla
Bitte warten ..
Mitglied: haufeft
26.11.2007 um 20:43 Uhr
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

Mit freundlichen Grüßen
Bitte warten ..
Mitglied: bastla
26.11.2007 um 21:24 Uhr
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:
01.
for /f "tokens=1*" %%i in ('ipconfig^|findstr "Ethernetadapter"') do set "Adapter=%%j" 
02.
set "Adapter=%Adapter::=%" 
03.
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:
01.
set "Adapter=%Adapter:~0,-1%"
Die "echo"-Zeile ist natürlich nur Dekoration ...

Grüße
bastla
Bitte warten ..
Mitglied: haufeft
26.11.2007 um 21:40 Uhr
na das ist mal was schönes ^^


ich danke dir :D
Bitte warten ..
Mitglied: haufeft
26.11.2007 um 22:51 Uhr
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


Mit freundlichen Grüßen

gn8
Bitte warten ..
Mitglied: bastla
27.11.2007 um 07:48 Uhr
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
Bitte warten ..
Mitglied: haufeft
27.11.2007 um 14:38 Uhr
hallo bastla

sorry wegen den fehlenden infos

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
01.
Ethernet-Adapter haufe: 
02.
 
03.
  Verbindungsspezifisches DNS-Suffix: 
04.
   Verbindungslokale IPv6-Adresse  . : fe80::d860:3cef:6b2:c4c1%8 
05.
   IPv4-Adresse  . . . . . . . . . . : 192.168.25.66 
06.
 Subnetzmaske  . . . . . . . . . . : 255.255.255.0 
07.
  Standardgateway . . . . . . . . . : 192.168.25.201 
08.
 
09.
Tunneladapter LAN-Verbindung* 6: 
10.
 
11.
  Medienstatus. . . . . . . . . . . : Medium getrennt 
12.
  Verbindungsspezifisches DNS-Suffix: 
13.
 
14.
Tunneladapter LAN-Verbindung* 7: 
15.
 
16.
  Medienstatus. . . . . . . . . . . : Medium getrennt 
17.
   Verbindungsspezifisches DNS-Suffix:
Mit freundlichen Grüßen
haufe
Bitte warten ..
Mitglied: bastla
28.11.2007 um 00:35 Uhr
Hallo haufeft!

Das sollte so gehen:
01.
@echo off & setlocal enabledelayedexpansion 
02.
set "Adapter=haufe" 
03.
set "Settings=ipv4 Subnet gateway" 
04.
 
05.
set "To=adapter" 
06.
 
07.
set "ITemp=%temp%\ipconfigTemp.txt" 
08.
ipconfig|findstr /n $>%ITemp% 
09.
 
10.
for /f "delims=:" %%i in ('findstr /i "%Adapter%" %ITemp%') do set /a "Line=%%i" 
11.
if not defined Line echo %Adapter% nicht gefunden. & goto :eof 
12.
 
13.
set Next= 
14.
for /f "delims=:" %%i in ('more +%Line% %ITemp%^|findstr /i "%To%"') do if not defined Next set /a "Next=%%i" 
15.
if defined Next (set /a Next+=%Line%) else set Next=10000 
16.
 
17.
set ATemp=%temp%\GetAdapterData.txt 
18.
if exist %ATemp% del %ATemp% 
19.
for /f "tokens=1* delims=:" %%i in ('more +%Line% %ITemp%') do if %%i lss %Next% echo %%j>>%ATemp% 
20.
 
21.
for %%s in (%Settings%) do call :ProcessSetting %%s 
22.
if exist %ATemp% del %ATemp% 
23.
 
24.
echo. 
25.
echo Gesetzte Variable: 
26.
set # 
27.
goto :eof 
28.
 
29.
:ProcessSetting 
30.
set #%~1= 
31.
for /f "tokens=1* delims=:" %%i in ('findstr /i "%~1" %ATemp%') do if not defined #%~1 set "#%~1=%%j" & echo %~1%%j 
32.
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.
Bitte warten ..
Mitglied: haufeft
28.11.2007 um 00:47 Uhr
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???
Mit freundlichen Grüßen
Bitte warten ..
Mitglied: Biber
28.11.2007 um 08:06 Uhr
@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
Bitte warten ..
Mitglied: haufeft
28.11.2007 um 10:17 Uhr
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
01.
Kann besser kochen als programmieren. (Das glaube ich Dir)
Mit freundlichen Grüßen
Haufe

@bastla

Vielen Dank für Deine Hilfe, du hast mir sehr weiter geholfen.
Bitte warten ..
Mitglied: Biber
28.11.2007 um 11:57 Uhr
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:

01.
dateiname nicht in Text.tmp übernehmen 
02.
hallo 
03.
 
04.
ich versuche verzweifelt den dateinamen nicht mit zu übernehmen 
05.
 
06.
mit dem befehl lese ich die test.text, die ich mit ipconfig >>test.txt anlege: 
07.
for /f "eol=; tokens=2"delims=, %%i in ('find /i "Ethernet-Adapter" test.txt') do (echo %%i >>a.tmp)  
08.
 
09.
TEST.TXT <------das sollte nicht sein 
10.
LAN-Verbindung: <---- das ":" auch nicht wenn es geht  
11.
 
12.
wäre schön wenn mir jemand helfen könnte 
13.
 
14.
 
15.
bin der totale noob auf dem gebiet 
16.
 
17.
und könnte mir auch jemand sagen wie ich ÖÄÜ u.s.w auch in einer batch nutzen kann? 
18.
 
19.
 
20.
Mit freundlichen Grüßen
...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
Bitte warten ..
Mitglied: haufeft
28.11.2007 um 12:32 Uhr
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

01.
echo Einstellungen >info.tmp 
02.
echo OK MITTE>>info.tmp 
03.
echo da soll die ausgabe hin>>info.tmp 
04.
echo.>>info.tmp 
05.
call winscript messagebox info.tmp
nochmal alles


Mit freundlichen Grüßen

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
Bitte warten ..
Mitglied: Biber
28.11.2007 um 17:52 Uhr
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
Bitte warten ..
Mitglied: bastla
28.11.2007 um 18:25 Uhr
@Biber
Danke , 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
01.
echo %#IPv4% >>info.tmp
oder auch
01.
echo Subnetzmaske: %#Subnet% >>info.tmp
Zur Sicherheit könntest Du noch vorweg überprüfen, ob die betreffende Adresse tatsächlich gefunden wurde, also etwa
01.
if defined #gateway echo Standardgateway=%#gateway% >>info.tmp
Grüße
bastla
Bitte warten ..
Mitglied: Biber
28.11.2007 um 18:46 Uhr
@bastla
Danke , bin heute den ganzen Tag nicht dazu gekommen ...
Jederzeit gerne... aber ich habe auch grad eben erst angefangen.

Sagt Dir der Begriff Augiasstall etwas? <grinz>

Grüße
Biber
Bitte warten ..
Mitglied: haufeft
28.11.2007 um 22:15 Uhr
Guten Abend

erstmal danke an euch beide für eure hilfe.

jetzt habe ich erstmal viel nachzulesen :D:D

und noch ein problem:

01.
@echo off & setlocal enabledelayedexpansion 
02.
set "Adapter=lan" 
03.
set "Settings=ipv4 Subnet gateway" 
04.
 
05.
set "To=adapter" 
06.
 
07.
set "ITemp=%temp%\ipconfigTemp.txt" 
08.
ipconfig|findstr /n $>%ITemp% 
09.
 
10.
for /f "delims=:" %%i in ('findstr /i "%Adapter%" %ITemp%') do set /a "Line=%%i" 
11.
if not defined Line echo %Adapter% nicht gefunden. & goto :eof 
12.
 
13.
set Next= 
14.
for /f "delims=:" %%i in ('more +%Line% %ITemp%^|findstr /i "%To%"') do if not defined Next set /a "Next=%%i" 
15.
if defined Next (set /a Next+=%Line%) else set Next=10000 
16.
 
17.
set ATemp=%temp%\GetAdapterData.txt 
18.
if exist %ATemp% del %ATemp% 
19.
for /f "tokens=1* delims=:" %%i in ('more +%Line% %ITemp%') do if %%i lss %Next% echo %%j>>%ATemp% 
20.
 
21.
for %%s in (%Settings%) do call :ProcessSetting %%s 
22.
if exist %ATemp% del %ATemp% 
23.
 
24.
echo. 
25.
echo Gesetzte Variable: 
26.
set # 
27.
goto :eof 
28.
 
29.
:ProcessSetting 
30.
set #%~1= 
31.
for /f "tokens=1* delims=:" %%i in ('findstr /i "%~1" %ATemp%') do if not defined #%~1 set "#%~1=%%j"  
32.
if defined #%~1 set "#%~1=!#%~1:~1!" 
33.
 
34.
echo test>info.tmp 
35.
echo ok>>info.tmp 
36.
echo %#IPv4% >>info.tmp 
37.
echo.>>info.tmp 
38.
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

01.
 Wortschatz -   Von Canossa-Gang bis Dulzinea 
02.
(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


Mit freundlichen Grüßen
haufe
Bitte warten ..
Mitglied: bastla
28.11.2007 um 22:28 Uhr
Hallo haufeft!

Ersetze (oder ergänze) einfach den Teil
01.
echo. 
02.
echo Gesetzte Variable: 
03.
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 ...
Bitte warten ..
Mitglied: haufeft
28.11.2007 um 22:49 Uhr
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

Mit freundlichen Grüßen haufe
Bitte warten ..
Mitglied: bastla
28.11.2007 um 23:04 Uhr
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:
01.
... 
02.
... 
03.
set # 
04.
goto :Weiter 
05.
 
06.
:ProcessSetting 
07.
set #%~1= 
08.
for /f "tokens=1* delims=:" %%i in ('findstr /i "%~1" %ATemp%') do if not defined #%~1 set "#%~1=%%j"  
09.
if defined #%~1 set "#%~1=!#%~1:~1!" 
10.
goto :eof 
11.
 
12.
:Weiter 
13.
echo test>info.tmp 
14.
echo ok>>info.tmp 
15.
echo %#IPv4% >>info.tmp 
16.
echo.>>info.tmp 
17.
call winscript messagebox info.tmp 
18.
... 
19.
...
PS: Ich weiss dass ich nerve
Bis jetzt noch nicht; ich sag schon Bescheid, wenn's soweit ist.

Grüße
bastla
Bitte warten ..
Mitglied: haufeft
29.11.2007 um 09:32 Uhr
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

Mit freundlichen Grüßen

Haufe
Bitte warten ..
Mitglied: Biber
29.11.2007 um 09:40 Uhr
@haufeft
Ich komme wieder :D:D
Drohungen und Einschüchterungen sind laut Forumsrichtlinien nur ModeratorInnen erlaubt.

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
Bitte warten ..
Mitglied: Biber
03.12.2007 um 07:44 Uhr
-- Beitrag wieder geöffnet wegen eines neuen Problems -- wegen PN haufeft --
Details folgen von haufeft...

Grüße
Biber
Bitte warten ..
Mitglied: haufeft
03.12.2007 um 09:18 Uhr
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 .


Mit freundlichen Grüßen haufe
Bitte warten ..
Mitglied: Biber
03.12.2007 um 09:35 Uhr
Moin haufeft,

versuche es mal mit...
01.
for /f "tokens=1,2 delims=: " %%i in ('ipconfig^|findstr /i "Ethernet-Adapter"') do echo %%~j>>%TEMP%\tete\nea1.tmp
Grüße
Biber
Bitte warten ..
Mitglied: haufeft
03.12.2007 um 12:27 Uhr
Moin Biber

leider funktioniert es nicht

meine ipconfig:
01.
 
02.
Windows-IP-Konfiguration 
03.
 
04.
 
05.
Ethernet-Adapter Local Area Connection: 
06.
 
07.
   Verbindungsspezifisches DNS-Suffix:  
08.
   Verbindungslokale IPv6-Adresse  . : fe80::d860:3cef:6b2:c4c1%8 
09.
   IPv4-Adresse  . . . . . . . . . . : 192.168.25.25 
10.
   Subnetzmaske  . . . . . . . . . . : 255.255.255.0 
11.
   Standardgateway . . . . . . . . . : 192.168.25.201 
12.
 
13.
Ethernet-Adapter VMware Network Adapter VMnet1: 
14.
 
15.
   Verbindungsspezifisches DNS-Suffix:  
16.
   Verbindungslokale IPv6-Adresse  . : fe80::f089:6cb5:1432:b051%13 
17.
   IPv4-Adresse  . . . . . . . . . . : 192.168.183.1 
18.
   Subnetzmaske  . . . . . . . . . . : 255.255.255.0 
19.
   Standardgateway . . . . . . . . . :  
20.
 
21.
Ethernet-Adapter VMware Network Adapter VMnet8: 
22.
 
23.
   Verbindungsspezifisches DNS-Suffix:  
24.
   Verbindungslokale IPv6-Adresse  . : fe80::a11e:7f93:dfa7:c7ce%15 
25.
   IPv4-Adresse  . . . . . . . . . . : 192.168.211.1 
26.
   Subnetzmaske  . . . . . . . . . . : 255.255.255.0 
27.
   Standardgateway . . . . . . . . . :  
28.
 
29.
Tunneladapter LAN-Verbindung* 6: 
30.
 
31.
   Medienstatus. . . . . . . . . . . : Medium getrennt 
32.
   Verbindungsspezifisches DNS-Suffix:  
33.
 
34.
Tunneladapter LAN-Verbindung* 7: 
35.
 
36.
   Medienstatus. . . . . . . . . . . : Medium getrennt 
37.
   Verbindungsspezifisches DNS-Suffix:  
38.
 
39.
Tunneladapter LAN-Verbindung* 11: 
40.
 
41.
   Medienstatus. . . . . . . . . . . : Medium getrennt 
42.
   Verbindungsspezifisches DNS-Suffix:  
43.
 
44.
Tunneladapter LAN-Verbindung* 12: 
45.
 
46.
   Medienstatus. . . . . . . . . . . : Medium getrennt 
47.
   Verbindungsspezifisches DNS-Suffix: 
mit deiner zeile bekomme ich nur
01.
Local 
02.
VMware 
03.
VMware
hast du noch eine andere idee?

Mit freundlichen Grüßen
Bitte warten ..
Mitglied: Biber
03.12.2007 um 12:42 Uhr
Moin haufeft,

was soll's, dann hängen wir halt noch eine FOR/F-Anweisung dahinter....
01.
... 
02.
for /f "tokens=1*" %%i in ('ipconfig^|findstr /i "Ethernet-Adapter"') do ( 
03.
     for /f "delims=:" %%a in ("%%j") do @echo %%a  
04.
)
Output:
01.
Local Area Connection 
02.
VMware Network Adapter VMnet1 
03.
VMware Network Adapter VMnet8
... as should do...

Grüße
Biber
Bitte warten ..
Mitglied: haufeft
03.12.2007 um 12:55 Uhr
Output:
01.
Local Area Connection 
02.
> VMware Network Adapter VMnet1 
03.
> VMware Network Adapter VMnet8 
04.
> 
... as should do...

Grüße
Biber


und bing bang booooommmmm es geht


Danke

Mit freundlichen Grüßen haufe
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Mehrere PDF-Dateien per Batch zusammenfügen (1)

Frage von Grimmli zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch ausgabe zeilenweise stat spaltenweise ausgeben (4)

Frage von sugram zum Thema Batch & Shell ...

Batch & Shell
gelöst Mit batch zeilen auslesen (2)

Frage von keksegriller zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...