PDA

Показать полную графическую версию : [решено] В зависимости от имени пользователя перейти в нужную строку


Valek271183
02-09-2017, 22:18
Подскажите как сделать BAT в котором нужно перейти к нужной строке bat файла в зависимости от имени пользователя, например если это Имя User перейти к строке :1, если Вася то ко :второй и т.д. ?

Iska
02-09-2017, 22:29
Просто «goto :%UserName%» или «call :%UserName%».

@echo off
setlocal enableextensions enabledelayedexpansion

call :%UserName%

endlocal
exit /b 0

:User1
echo %~0
exit /b 0

:User2
echo %~0
exit /b 0

:Вася
echo %~0
exit /b 0

:Петя
echo %~0
exit /b 0

Valek271183
02-09-2017, 22:37
а если не будет такого имени, как пропустить всех Васей и Петей, они не запустятся по очереди один за другим? мне надо что бы если ничего не совпало перейти на другую нужную мне команду, команда Call так и сделает?

Iska
02-09-2017, 23:03
мне надо что бы если ничего не совпало перейти на другую нужную мне команду, команда Call так и сделает? »
Нет. В таком сценарии следует сделать предварительную проверку:
@echo off
setlocal enableextensions enabledelayedexpansion

for %%i in ("User1" "User2" "Вася" "Петя") do if /i "%%~i" equ "%UserName%" goto :%UserName%

echo Ничего не совпало
goto :eof

:User1
echo User1
goto :eof

:User2
echo User2
goto :eof

:Вася
echo Вася
goto :eof

:Петя
echo Петя
goto :eof

endlocal
exit /b 0

megaloman
03-09-2017, 08:45
Valek271183, @Echo Off
Cls
Call :%Username% 2>nul || Call :_Nobody!
Pause
GoTo :Eof

:_Nobody!
Echo Пользователь %Username% не описан
GoTo :Eof

:Вася
Echo Вася
GoTo :Eof

:Глафира
Echo Глафира
GoTo :Eof

Iska
03-09-2017, 08:54
Call :%Username% 2>nul || Call :@Nobody »
Вот, кстати, да!




© OSzone.net 2001-2012