Batch Schleifen (pslogged on) Problem
Hallo
Ich bin neu im Forum und habe eine Frage:
Ich probiere für das Netzwerk meine Schule einen simplen Messenger zu schreiben
Das ganze Projekt soll eine Batch Datei werden aber es klappt leider nicht
Die " Kontakliste" basiert auf der Ausgabe der psloggedon.exe aus der Windows Systeminternals Sammlung
Aber:
Meine Batch Datei funktioniert nicht!
Messenger.bat
For /F %%i in ('psloggedon -x -') do echo %%i >> user
Rem Die Computer im Netzwerk werden mit denen an ihnen Angemeldeten User in dem Format Computername/Benutzername in die Datei "user" geschrieben
So weit funktioniert das ganze.
Nun will ich aber die Computernamen in der Datei "user" Variablen zuordnen
Die Variabeln sollen nach den Benutzernamen bennant sein
Also:
Rem Token 2 ist der Benutzername
for /F "tokens=2 delims=\" %%i IN (user) DO set /a %%i =%%i
Rem Token 1 ist der Computername
for /F "tokens=1 delims=\" %%a IN (user) DO set /a %%a =%%a
Nun habe ich Variablen gesetzt die so aussehen:
z.B.
lehrer=lehrer
pc1=pc1
Nun will ich aber das sie so aussehen:
lehrer=pc1
Wie kann ich das bewerkstelligen ?
Ich habe schon folgendes probiert:
set %%i=%%a
aber dann wir gesagt das %%a nicht definiert ist also bitte
Ich brauche Hilfe
Ich bin erst 14 und ein ziemlicher Anfänger in Batch und das Tool sollte bis morgen fertig werden
Da ich hier im Forum schon oft hilfreiche Dinge gelesen habe habe ich die Hoffnung das mir auch geholfen werden kann....
Ps: Entschuldigung für die Rechtschreibung und (falls es der Fall sein sollte) das ich etwas sehr sinnloses gesagt habe......
Ich bin neu im Forum und habe eine Frage:
Ich probiere für das Netzwerk meine Schule einen simplen Messenger zu schreiben
Das ganze Projekt soll eine Batch Datei werden aber es klappt leider nicht
Die " Kontakliste" basiert auf der Ausgabe der psloggedon.exe aus der Windows Systeminternals Sammlung
Aber:
Meine Batch Datei funktioniert nicht!
Messenger.bat
For /F %%i in ('psloggedon -x -') do echo %%i >> user
Rem Die Computer im Netzwerk werden mit denen an ihnen Angemeldeten User in dem Format Computername/Benutzername in die Datei "user" geschrieben
So weit funktioniert das ganze.
Nun will ich aber die Computernamen in der Datei "user" Variablen zuordnen
Die Variabeln sollen nach den Benutzernamen bennant sein
Also:
Rem Token 2 ist der Benutzername
for /F "tokens=2 delims=\" %%i IN (user) DO set /a %%i =%%i
Rem Token 1 ist der Computername
for /F "tokens=1 delims=\" %%a IN (user) DO set /a %%a =%%a
Nun habe ich Variablen gesetzt die so aussehen:
z.B.
lehrer=lehrer
pc1=pc1
Nun will ich aber das sie so aussehen:
lehrer=pc1
Wie kann ich das bewerkstelligen ?
Ich habe schon folgendes probiert:
set %%i=%%a
aber dann wir gesagt das %%a nicht definiert ist also bitte
Ich brauche Hilfe
Ich bin erst 14 und ein ziemlicher Anfänger in Batch und das Tool sollte bis morgen fertig werden
Da ich hier im Forum schon oft hilfreiche Dinge gelesen habe habe ich die Hoffnung das mir auch geholfen werden kann....
Ps: Entschuldigung für die Rechtschreibung und (falls es der Fall sein sollte) das ich etwas sehr sinnloses gesagt habe......
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 125095
Url: https://administrator.de/contentid/125095
Ausgedruckt am: 26.11.2024 um 01:11 Uhr
15 Kommentare
Neuester Kommentar
Moin iluj258,
willkommen im Forum.
Versuch es mal so:
Bzw. teste erst mal am CMD-Prompt, was herauskommen würde.
Der Schalter /a beim SET-Befehl heißt /a, weil er für was anderes ist. Den brauchst Du nicht.
Grüße
Biber
willkommen im Forum.
Versuch es mal so:
...
Rem Token 1 ist der Computername, Token 2 ist der Benutzername
for /F "tokens=1-2 delims=\" %%i IN (user) DO set %%i =%%j
...
Bzw. teste erst mal am CMD-Prompt, was herauskommen würde.
for /F "tokens=1-2 delims=\" %i IN (user) DO @echo set %i =%j
Der Schalter /a beim SET-Befehl heißt /a, weil er für was anderes ist. Den brauchst Du nicht.
Grüße
Biber
Hallo iluj258 und willkommen im Forum!
Um Deine Geduld nicht über Gebühr zu strapazieren [Edit] Wie ich sehe, bereits zu spät ... [/Edit]:
Warum nach "\\" gesucht werden muss, findest Du mit "findstr /?" heraus ...
Grüße
bastla
Um Deine Geduld nicht über Gebühr zu strapazieren [Edit] Wie ich sehe, bereits zu spät ... [/Edit]:
for /F "tokens=1-2 delims=\" %%i IN ('findstr "\\" user') DO set %%i=%%j
Grüße
bastla