Gamertag: Cosmicv0id
"Het woord Gods is voor mij niets meer dan een expressie en het product van menselijke zwakheid. De Bijbel is een verzamelwerk van legendes die achtenswaardig zijn maar ook primitief en kinderachtig.'' - Albert Einstein
Gamertag: Cosmicv0id
"Het woord Gods is voor mij niets meer dan een expressie en het product van menselijke zwakheid. De Bijbel is een verzamelwerk van legendes die achtenswaardig zijn maar ook primitief en kinderachtig.'' - Albert Einstein
Oftewel - wat is de exacte toepassing van deze vraag?
Ik wil idd met regexen werken.elevator schreef op woensdag 01 februari 2006 @ 16:53:
Waarom zou je dit willen als ik vragen mag - als je regel gematched wordt dan weet je toch dat alles wat in die regel zit dat woord is dat je zoekt (of werk je specifiek met regexes)?
Oftewel - wat is de exacte toepassing van deze vraag?
Dit van die Subnetmasker was gewoon een simpel voorbeeld.
Het exacte doel is om hiermee overzichtelijke bestanden te kunnen maken.
Ik wil dit namelijk verwerken in een opstartscript.
Dat opstartscript verwerken alle PC's in het netwerk bij het inloggen.
Daarin staat dan bijv: ipconfig /all | findstr [REGEXMEUK] > f:\everyone\pcinfo.txt
Dan kan ik het zo maken dat op een gegeven moment pcinfo.txt een heel overzichtelijk bestand wordt.
PC naam: <blaat>
IP-Adres: <blaat>
MAC-Adres: <blaat>
Zoiets zeg maar.. dat is gewoon wat overzichtelijker dan allemaal lines onder elkaar wat afkomstig is uit de output van ipconfig /all
Gamertag: Cosmicv0id
"Het woord Gods is voor mij niets meer dan een expressie en het product van menselijke zwakheid. De Bijbel is een verzamelwerk van legendes die achtenswaardig zijn maar ook primitief en kinderachtig.'' - Albert Einstein
- Wat wil je precies bereiken? Met "For" en dergelijke kan je soms nog wel e.e.a.
- Ken je 'systeminfo.exe' ?
Verwijderd
schrijf het weg naar >%computername%_info.txtDeMoN schreef op woensdag 01 februari 2006 @ 16:59:
[...]
Ik wil idd met regexen werken.
Dit van die Subnetmasker was gewoon een simpel voorbeeld.
Het exacte doel is om hiermee overzichtelijke bestanden te kunnen maken.
Ik wil dit namelijk verwerken in een opstartscript.
Dat opstartscript verwerken alle PC's in het netwerk bij het inloggen.
Daarin staat dan bijv: ipconfig /all | findstr [REGEXMEUK] > f:\everyone\pcinfo.txt
Dan kan ik het zo maken dat op een gegeven moment pcinfo.txt een heel overzichtelijk bestand wordt.
PC naam: <blaat>
IP-Adres: <blaat>
MAC-Adres: <blaat>
Zoiets zeg maar.. dat is gewoon wat overzichtelijker dan allemaal lines onder elkaar wat afkomstig is uit de output van ipconfig /all
Dan heb je weliswaar veel kleine bestandjes, maar wordt zoeken wel makkelijk
Wat bedoel je?elevator schreef op donderdag 02 februari 2006 @ 01:03:
- Wat wil je precies bereiken?
Ik mijn post boven je is toch redelijk duidelijk te lezen wat ik wil bereiken?
Klopt, ik heb me er even in verdiept, maar het kan niet wat ik wil.Met "For" en dergelijke kan je soms nog wel e.e.a.
Stel ik maak een batch file maar daarin:
1
2
3
4
5
6
7
8
| @echo off REM tokens=13, 16 en 17 zijn IP's for /f "tokens=13,16,17" %%k IN ('ipconfig') do ( @echo. K=%%k @echo. L=%%l @echo. M=%%m) |
Dan geeft dat als output:
1
2
3
4
5
6
7
8
9
| K=. L=.: M=10.108.128.101 K=. L=255.255.255.0 M= K=10.108.128.254 L= M= |
M.a.w, zo heb ik het bijna voor elkaar.
Het jammere is alleen dat hij alsnog de loop per line doorloopt. Vandaar dat ik ook met die 'tokens' moet spelen in die FOR loop.
Alleen zijn die tokens een hels werk en er hoeft maar een beetje aan de situatie te veranderen en het werkt niet meer.
Is denk ik XP-only?- Ken je 'systeminfo.exe' ?
Op het moment wil ik dit geheel liever werkend zien in een 2K omgeving.
Kleine, maar krachtige tip!Verwijderd schreef op donderdag 02 februari 2006 @ 10:17:
[...]
schrijf het weg naar >%computername%_info.txt
Dan heb je weliswaar veel kleine bestandjes, maar wordt zoeken wel makkelijk
Dit zou ik nog wel eens kunnen gebruiken.. dan zet ik er gewoon een IF EXIST bij zodat hij de volgende keer die file niet meer aanmaakt.
Ga het zo maar ff proberen dan, thx
Gamertag: Cosmicv0id
"Het woord Gods is voor mij niets meer dan een expressie en het product van menselijke zwakheid. De Bijbel is een verzamelwerk van legendes die achtenswaardig zijn maar ook primitief en kinderachtig.'' - Albert Einstein
Nouja - dat kan het wel natuurlijk - als jeDeMoN schreef op donderdag 02 februari 2006 @ 11:17:
Klopt, ik heb me er even in verdiept, maar het kan niet wat ik wil.
for /f "tokens=*" %%k IN ('ipconfig ^| findstr /i /c:"IP Address"') do @echo %%k
Zou gebruiken ben je al een heel eind gok ik
Lol, dat kan natuurlijk ook iddelevator schreef op donderdag 02 februari 2006 @ 11:20:
[...]
Nouja - dat kan het wel natuurlijk - als je
for /f "tokens=*" %%k IN ('ipconfig ^| findstr /i /c:"IP Address"') do @echo %%k
Zou gebruiken ben je al een heel eind gok ik
Wat je dan doet is alle tokens per line vergelijken d.m.v. een zoekopdracht van findstr.
Hmm..
Je zou zit kunnen doen:
1
2
3
4
5
6
| @echo off
for /f "tokens=13,16,17" %%k IN ('ipconfig ^| findstr /i "IP-Adres Subnetmask Standaardgateway"') do (
@echo. IP = %%k
@echo. Mask = %%l
@echo. Gateway = %%m
) |
Dan krijg je dit:
1
2
3
4
5
6
7
8
9
| IP = . Mask = .: Gateway = 10.108.128.101 IP = . Mask = 255.255.255.0 Gateway = IP = 10.108.128.254 Mask = Gateway = |
Maar dan krijg je zooi zoals " IP = . " er doorheen omdat die '.' matched met een tokenpositie vanaf een verkeerde line.
Dit kan je dan wel oplossen door verschillende lussen te plaatsen:
1
2
3
4
5
6
7
8
9
| @echo off
for /f "tokens=17" %%k IN ('ipconfig ^| findstr /i "IP-Adres"') do (
@echo. IP = %%k)
for /f "tokens=16" %%l IN ('ipconfig ^| findstr /i "Subnetmask"') do (
@echo. Mask = %%l)
for /f "tokens=13" %%m IN ('ipconfig ^| findstr /i "Standaardgateway"') do (
@echo. Gateway = %%m) |
Output:
1
2
3
| IP = 10.108.128.101 Mask = 255.255.255.0 Gateway = 10.108.128.254 |
Woei
Bedankt voor het zetje in de goede richting!
* DeMoN gaat verder met zijn gepruts
[ Voor 9% gewijzigd door DeMoN op 02-02-2006 11:47 ]
Gamertag: Cosmicv0id
"Het woord Gods is voor mij niets meer dan een expressie en het product van menselijke zwakheid. De Bijbel is een verzamelwerk van legendes die achtenswaardig zijn maar ook primitief en kinderachtig.'' - Albert Einstein
Verwijderd
edit: ff zelf wat geprutst, zoals je ziet moet je voor jou code wel een nl (xp?) versie hebben. dit werkt voor een engelse xp versie iig
verder nog een loophole in deze methode... als je 2 netwerkkaarten hebt kom je ook in de problemen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| set count=0
@echo off
for /f "tokens=2 delims=:" %%k IN ('ipconfig ^| findstr /i "Address Subnet gateway"') do call :logit %%k
goto :overig
:logit
set /a count+=1
if %count%==1 echo IP = %1>log.txt
if %count%==2 echo Mask = %1>>log.txt
if %count%==3 echo Gateway = %1>>log.txt
goto :eof
:overig
rest script... |
[ Voor 108% gewijzigd door Verwijderd op 02-02-2006 12:18 ]
Jup! Dat maakt het idd wat stabieler. En helemaal bij ipconfig want die ":" komt alleen voor, voor het (bijv.) IP AdresVerwijderd schreef op donderdag 02 februari 2006 @ 12:07:
als je nu nog "tokens=2 delims=:" gebruikt, wordt het helemaal mooie code
Thx
edit: BATCH scripting onder Windows is zo nog 'ingewikkelder' dan op Linux
edit2: Dank voor je stukje code, zoiets was ik net aan het maken
[ Voor 28% gewijzigd door DeMoN op 02-02-2006 12:19 ]
Gamertag: Cosmicv0id
"Het woord Gods is voor mij niets meer dan een expressie en het product van menselijke zwakheid. De Bijbel is een verzamelwerk van legendes die achtenswaardig zijn maar ook primitief en kinderachtig.'' - Albert Einstein