stoepsu77
Goto Top

Batch: Angemeldeter User in Variable setzen

Hallo an Alle

Via Batch muss ich eine Datei unter dem angemeldeten User im Bereich Roaming ersetzen.
Meine Batch zielt dabei auf %username% als Variable, was aber leider nicht funktioniert, weil die Batch als Admin ausgeführt werden muss.

Mit Query User kann ich den angemeldeten User ja abfragen, bekomme den Namen aber einfach nicht in eine Variable gespeichert, damit ich den dann in der Pfadangabe einbauen könnte.

So nimmt er immer den Admin und nicht den angemeldeten User.
C:\Users\%username%\AppData\Roaming\....\Settings

Wie kann man den angemeldeten User in eine Variable speichern?

Danke
Lg BeMe

Content-ID: 73550857614

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

Ausgedruckt am: 21.11.2024 um 18:11 Uhr

tagol01
tagol01 24.06.2024 um 13:17:40 Uhr
Goto Top
Hallo

query user
stoepsu77
stoepsu77 24.06.2024 um 13:21:06 Uhr
Goto Top
Und wie bekommt man den Usernamen vonQuery ser in eine Variable?
Das krieg ich nicht hin.
TK1987
TK1987 24.06.2024 um 13:26:40 Uhr
Goto Top
Moin,

Zitat von @stoepsu77:
Und wie bekommt man den Usernamen vonQuery ser in eine Variable?
@echo off

for /f "Skip=1 Delims=> " %%A in ('query user') do set USER=%%A  

Gruß Thomas
stoepsu77
stoepsu77 24.06.2024 um 14:08:42 Uhr
Goto Top
Danke, genau sowas hab ich gesucht.
Nur leider enthält die Variable USER am Ende ein Leerzeichen.
Wie bekommt man das weg?
TK1987
Lösung TK1987 24.06.2024 um 14:14:53 Uhr
Goto Top
Zitat von @stoepsu77:
Nur leider enthält die Variable USER am Ende ein Leerzeichen.
Dann hast du im Skript hinter dem %%A ebenfalls ein Leerzeichen - dieses einfach löschen.

Alternativ kannst du das set user auch in Anführungszeichen setzen...
for /f "Skip=1 Delims=> " %%A in ('query user') do set "USER=%%A"  
stoepsu77
stoepsu77 24.06.2024 um 14:14:59 Uhr
Goto Top
Danke, habs geschafft.
Hab die Variable mit set User = User noch mal gesetzt.
Gäbe es vermutlich eleganter, klappt aber auch so.
mbehrens
mbehrens 24.06.2024 um 15:37:17 Uhr
Goto Top
Zitat von @stoepsu77:

Via Batch muss ich eine Datei unter dem angemeldeten User im Bereich Roaming ersetzen.
Meine Batch zielt dabei auf %username% als Variable, was aber leider nicht funktioniert, weil die Batch als Admin ausgeführt werden muss.

Mann könnte es als Parameter an das Script übergeben.
stoepsu77
stoepsu77 25.06.2024 um 06:46:37 Uhr
Goto Top
Danke, Leerzeichen hinter %%A gab es nicht.
Aber es funktioniert, danke
stoepsu77
stoepsu77 25.06.2024 um 06:48:46 Uhr
Goto Top
Hallo mbehrens

Wie meinst du das mit Parameter an Script übergeben?
Wie?
Es funktioniert zwar jetzt, interessiert mich aber trotzdem.
Man möchte ja auch was lernen.
Danke
TK1987
TK1987 25.06.2024 um 12:00:29 Uhr
Goto Top
Zitat von @mbehrens:
Mann könnte es als Parameter an das Script übergeben.
Frau denn nicht? 😜

Zitat von @stoepsu77:
Wie meinst du das mit Parameter an Script übergeben?
Einfach beim Skriptaufruf noch den Benutzernamen dran hängen, dieser ist dann über die Variable "%1" erreichbar.

Wie?
Das hängt halt davon ab, wie/worüber du die Batch als Admin ausführst.