auslesen der ersten 8 zeichen...
...nach einem delimiter, aber nur wenn bestimmte strings drin vorkommen.
hallo,
ich einen output der in etwa so aussieht:
Found VM:
moref:vm-13009
name:gettnt01
uuid:5030e4a4-a0f9-c6fe-2b15-1a6200754dc9
ipaddr:
[2008-06-23 14:55:54.426 'vcbVmName' 6000 warning] IP address not set.
Found VM:
moref:vm-3622
name:gettx732-testrechner
uuid:5038156e-d1c0-e2fa-4d42-ca40f795f898
ipaddr:
Found VM:
moref:vm-4406
name:gett0102
uuid:503029a4-5f84-a3ff-31fa-e31a79c73995
ipaddr:
usw.
mein ziel ist es, nur den hostnamen auszulesen.
also gettnt01 und gettx732 usw. aber nur wenn die hostnamen gettnt*, gettx* oder gettlx* heissen.
also nicht gett0102 usw.
ich hab schon mit
for /f "tokens=2 delims=:" %%i in ('find "name" vms.txt') do echo %%i >> ausgabe.txt
wenigstens nur noch die zeilen die überhaupt den hostname enthalten.
was mir fehlt ist irgendwie ne kombinierte find innerhalb der schleife.
kann jemand weiterhelfen?
danke und gruss
michel
ich einen output der in etwa so aussieht:
Found VM:
moref:vm-13009
name:gettnt01
uuid:5030e4a4-a0f9-c6fe-2b15-1a6200754dc9
ipaddr:
[2008-06-23 14:55:54.426 'vcbVmName' 6000 warning] IP address not set.
Found VM:
moref:vm-3622
name:gettx732-testrechner
uuid:5038156e-d1c0-e2fa-4d42-ca40f795f898
ipaddr:
Found VM:
moref:vm-4406
name:gett0102
uuid:503029a4-5f84-a3ff-31fa-e31a79c73995
ipaddr:
usw.
mein ziel ist es, nur den hostnamen auszulesen.
also gettnt01 und gettx732 usw. aber nur wenn die hostnamen gettnt*, gettx* oder gettlx* heissen.
also nicht gett0102 usw.
ich hab schon mit
for /f "tokens=2 delims=:" %%i in ('find "name" vms.txt') do echo %%i >> ausgabe.txt
wenigstens nur noch die zeilen die überhaupt den hostname enthalten.
was mir fehlt ist irgendwie ne kombinierte find innerhalb der schleife.
kann jemand weiterhelfen?
danke und gruss
michel
Please also mark the comments that contributed to the solution of the article
Content-Key: 90448
Url: https://administrator.de/contentid/90448
Printed on: April 25, 2024 at 22:04 o'clock
6 Comments
Latest comment
Moin meckatzermichel,
grad hab ich mich in einem anderen Thread so schön in den Becks-Kontext hineingeredet, und dann bringst Du mich allein durch Deinen Nick wieder auf Weizenbier-Ebene herab..... ernüchternd, sag ich Dir.
Zu Deiner Textdatei.
...hier am Beispiel CMD-Prompt gefiltert nach allen Zeilen mit "name:gett*"
und danach mit dem regulären Ausdruck, der weiter einschränkt.
"name:gett[und dann a-z]"
Hilft das?
Grüße
Biber
grad hab ich mich in einem anderen Thread so schön in den Becks-Kontext hineingeredet, und dann bringst Du mich allein durch Deinen Nick wieder auf Weizenbier-Ebene herab..... ernüchternd, sag ich Dir.
Zu Deiner Textdatei.
>for /f "delims=: tokens=2" %i in ('findstr /i /C:"name:gett" %temp%\mm.txt') do @echo %i
gettnt01
gettx732-testrechner
gett0102
>for /f "delims=: tokens=2" %i in ('findstr /i /R "name:gett[a-z]" %temp%\mm.txt') do @echo %i
gettnt01
gettx732-testrechner
und danach mit dem regulären Ausdruck, der weiter einschränkt.
"name:gett[und dann a-z]"
Hilft das?
Grüße
Biber
Moin meckatzermichel,
ich schrieb ja auch nur "wenn..".
Wenn es keine feste Länge ist, aber ein (oder mehrere) mögliche Trennzeichen, dann diese Mimik:
FOR /F ist schon ein- oder zweimal hier in Batch & Shell durchdekliniert worden.
Bei Bedarf ein bisschen stöbern.
Grüße
Biber
ich schrieb ja auch nur "wenn..".
Wenn es keine feste Länge ist, aber ein (oder mehrere) mögliche Trennzeichen, dann diese Mimik:
>set rechner=gettx732-testrechner
>for /f "delims=-" %i in ("%rechner%") do @echo %i
gettx732
FOR /F ist schon ein- oder zweimal hier in Batch & Shell durchdekliniert worden.
Bei Bedarf ein bisschen stöbern.
Grüße
Biber