badbatchcoder
Goto Top

Befehl in mehrere Variablen umwandeln - Batch

Liebes Batch-Team,

ich bräuchte ein kleines Skript, was mir ermöglicht die Ausgabe eines benutzerdefinierten Befehls in Variablen umzuwandeln.
Dabei soll der Befehl net user ausgeführt werden und jeder Benutzer eine eigene Variable bekommen. Wenn man den
Befehl ausführt, sieht die Ausgabe übrigens ungefähr so aus:

Benutzerkonten für \\DESKTOP-#######

-------------------------------------------------------------------------------
Administrator            Besucher                 DefaultAccount
Gast                     ####                     #####
#####                    #####                    WDAGUtilityAccount
#####
Der Befehl wurde erfolgreich ausgeführt.

Alle persönlichen Namen und Daten hab ich jetzt mal vorsichtshalber zensiert. Jedenfalls solll der Code den Text folgendermaßen aufteilen:
Es werden nur die Infos der Benutzer herausgefiltert. Zuerst wird die Zeile, bzw. werden die Informationen des 1. Benutzers der Variable
%user_info% zugeordnet, beim zweiten Aufruf des Befehls werden der gleichen Variable die Infos des 2. Benutzers zugeordnet, usw.
Eine Zweite Variable %user_counter% gibt gleichzeitig die Anzahl der Benutzer an, sodass die Schleife beendet werden kann.

Hier ein Beispiel:

@echo off
set user_info_schleife=1
:users
if %user_info_schleife%==%user_counter% goto user_info_fertig

REM GESUCHTER CODE
echo %user_info%

set /a user_info_schleife=%user_info_schleife%+1
goto users

:user_info_fertig
pause >nul

Das Ergebnis soll dann das hier sein:

Administrator            Besucher                 DefaultAccount
Gast                     ####                     #####
#####                    #####                    WDAGUtilityAccount
#####

Die Stelle mit dem gesuchten Code ist natürlich nur ein Platzhalter für den Code den ich hier brauche, aber dabei Hilfe benötige.
Ich hoffe jemand hat da ne Idee =)


Vielen Dank im Voraus
LG BatchCoder

Content-Key: 593273

Url: https://administrator.de/contentid/593273

Ausgedruckt am: 19.03.2024 um 03:03 Uhr

Mitglied: 145033
Lösung 145033 04.08.2020 aktualisiert um 11:32:06 Uhr
Goto Top
Wieso so umständlich face-smile?
for /f "tokens=2 delims==" %%a in ('wmic useraccount get name /value') do @echo %%a  
In einer For-Schleife hast du den jeweiligen Wert in der Laufvariablen, und mit dem kannst du arbeiten.

Vielleicht wäre es mal sinnvoll das hier durchzulesen
Tutorial zur FOR-Schleife

Oder noch besser gleich auf Powershell wechseln, das arbeitet wenigstens objektorientiert!
(Get-LocalUser).Name
Mitglied: BadBatchCoder
BadBatchCoder 04.08.2020 um 11:41:21 Uhr
Goto Top
Ah danke, kann man auch nur die Namen der Benutzer ausgeben lassen?
Also die Namen, mit denen man später in Batch noch weiter arbeiten kann um zum Beispiel Passwörter zu ändern, ...

Ach und könntest du dir mal die Nachricht anschauen, die ich dir privat gesendet habe?
Das ist ein ähnliches Thema, da bräuchte ich es aber wirklich als Schleife.


Vielleicht wäre es mal sinnvoll das hier durchzulesen
Tutorial zur FOR-Schleife

Ok den Link werde ich mir mal ansehen, danke! =)
Mitglied: 145033
145033 04.08.2020 aktualisiert um 12:00:12 Uhr
Goto Top
Zitat von @BadBatchCoder:

Ah danke, kann man auch nur die Namen der Benutzer ausgeben lassen?
Macht es doch oben schon face-smile. "Name" ist der Login Name, "Fullname" der Anzeigename (DisplayName).

Einfach mal
wmic useraccount
eintippen und du siehst was du alles vom User bekommen kannst face-smile.
Ach und könntest du dir mal die Nachricht anschauen, die ich dir privat gesendet habe?
Das ist ein ähnliches Thema, da bräuchte ich es aber wirklich als Schleife.
Ok den Link werde ich mir mal ansehen, danke! =)
Dann klärt sich auch deine PN Frage gleich mit, deswegen => deine Hausaufgabe fürs Wochenende face-wink.
PNs beantworte ich grundsätzlich nicht kostenlos.