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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 90448
Url: https://administrator.de/contentid/90448
Ausgedruckt am: 23.11.2024 um 00:11 Uhr
6 Kommentare
Neuester Kommentar
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