2 Variablen in einer Zeile in Datei schreiben
hallo zusammen,
nachdem ich nun 3 jahre aus dem skripting raus bin und jetzt wieder back in it bin, steh ich leider schon bei einfachen dingen auf dem schlauch.
ich möchte aus einer datei mit hostnames mit wmic den angemeldeten user raus bringen.
for /F "delims=Name:." %%h in (hostname.txt) do (
wmic /node:%%h ComputerSystem GET UserName >> person.txt
)
die ausgabe von person.txt sieht dann so aus:
UserName
Domain\user001
UserName
Domain\user070
usw.
ich hätte aber gerne eine ausgabe wie folgt:
(ohne das UserName vom wmic befehl)
hostname1;user001
hostname5;user007
usw.
also quasi die variable %%h nochmals mit in die datei schreiben und die Zeile UserName eliminieren.
danke und gruss
michel
nachdem ich nun 3 jahre aus dem skripting raus bin und jetzt wieder back in it bin, steh ich leider schon bei einfachen dingen auf dem schlauch.
ich möchte aus einer datei mit hostnames mit wmic den angemeldeten user raus bringen.
for /F "delims=Name:." %%h in (hostname.txt) do (
wmic /node:%%h ComputerSystem GET UserName >> person.txt
)
die ausgabe von person.txt sieht dann so aus:
UserName
Domain\user001
UserName
Domain\user070
usw.
ich hätte aber gerne eine ausgabe wie folgt:
(ohne das UserName vom wmic befehl)
hostname1;user001
hostname5;user007
usw.
also quasi die variable %%h nochmals mit in die datei schreiben und die Zeile UserName eliminieren.
danke und gruss
michel
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 214278
Url: https://administrator.de/contentid/214278
Ausgedruckt am: 22.11.2024 um 20:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo meckatzermichel!
Wenn Du die Ausgabe eines Befehles weiterverwenden willst, musst Du den auch nochmal in eine Schleife packen - also etwa:
Mit "
Wenn Du die Domain nicht mit ausgeben willst (ungetestet):
Noch eine Anmerkung zu
Da zeichenweise verarbeitet wird, erklärst Du damit "N", "a", "m", "e", ":" und "." zu Trennzeichen, die daher alle in %%h nicht enthalten sein werden (bzw genauer: ab deren erstem Auftreten der Rest der Zeile aus "hostname.txt" ignoriert wird) ...
Grüße
bastla
Wenn Du die Ausgabe eines Befehles weiterverwenden willst, musst Du den auch nochmal in eine Schleife packen - also etwa:
for /F "delims=Name:." %%h in (hostname.txt) do (
for /f "skip=1 delims=" %%u in ('wmic /node:%%h ComputerSystem GET UserName') do >>person.txt echo %%h;%%u
)
skip=1
" überspringst Du die erste Zeile der Ausgabe (also "UserName").Wenn Du die Domain nicht mit ausgeben willst (ungetestet):
for /F "delims=Name:." %%h in (hostname.txt) do (
for /f "skip=1 tokens=1* delims=\" %%t in ('wmic /node:%%h ComputerSystem GET UserName') do >>person.txt echo %%h;%%u
)
Noch eine Anmerkung zu
"delims=Name:."
Grüße
bastla
Hallo meckatzermichel!
BTW:
Grüße
bastla
wie kann ich auch noch die 4 führenden leerzeichen wegen kriegen?
Indem Du "delims=:. "
verwendest?wenn ich jetzt noch aus den usernames mittels net user xxx /domain den vollständigen name dazu will, muss ich vermutlich nochmal eine subschleife einfügen oder?
Yep.BTW:
domain name krieg ich raus mit tokens=2*
Mein Vorschlag war die "Sicherheitsvariante" (und hier unnötig, da ein "\" im Usernamen ja nicht vorkommen kann) - bei Deiner Version ist dagegen der Stern entbehrlich (damit würdest Du alles - inklusive weiterer "\" - nach dem zweiten "\" zusammengefasst in eine weitere Variable bekommen) ...Grüße
bastla