PDA

Показать полную графическую версию : Передать в bat файл имя пользователя который работает в системе


Zmihail
26-03-2021, 08:22
Подскажите как реализовать следующее

Есть доступ к командной строке через идеал администратор, мне нужно скопировать каталог с удаленного к каталога .... Windows\Recent на общий ресурс. В пути до этого каталога встречается имя пользователя который работает в системе

Делаю командой
echo D|xcopy "c:\Users\%username%\AppData\Roaming\Microsoft\Windows\Recent" "v:\%computername%\Recent" /E /Y /H /R /K
проблема в том что %username% через командную строку на УДАЛЕННОМ компьютере возвращает имя компьютера со значком доллар на конце, а не имя пользователя, как решить этот вопрос средствами bat файла ?

Есть ещё команда wmic computersystem get usermane /value которая корректно отрабатывает удаленно, и выдаёт имя текущего пользователя кто зашел на компьютер, вопрос в том как передать это имя пользователя в Bat файл ??? чтобы добраться до каталога Recent ?

YuS_2
26-03-2021, 09:11
Есть ещё команда wmic computersystem get usermane /value которая корректно отрабатывает удаленно »
Если эта команда Вас устраивает, то создать переменную на её основе, можно так:
@echo off
for /f "delims=" %%i in ('wmic computersystem get username /value^|find /i "username"') do (
for /f "tokens=2 delims=\" %%a in ('echo %%i') do set "name=%%a"
)
rem Проверяем переменную:
echo [%name%]

А вообще, пора изучать powershell, там многое сделать проще и понятнее... :)

greg zakharov
26-03-2021, 11:39
А вообще, пора изучать powershell, там многое сделать проще и понятнее...За внешней простотой - масса проблем.

Zmihail
26-03-2021, 11:59
YuS_2, спасибо, то что нужно

YuS_2
26-03-2021, 12:24
За внешней простотой - масса проблем. »
Угу. Но не помню, чтобы выходящее ПО из-под руки микрософт, было бы свободно от проблем совсем... такшта из двух зол придется таки выбирать одно, чуть менее злобное. :)




© OSzone.net 2001-2012