Показать полную графическую версию : [решено] В зависимости от имени пользователя перейти в нужную строку
Valek271183
02-09-2017, 22:18
Подскажите как сделать BAT в котором нужно перейти к нужной строке bat файла в зависимости от имени пользователя, например если это Имя User перейти к строке :1, если Вася то ко :второй и т.д. ?
Просто «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 так и сделает?
мне надо что бы если ничего не совпало перейти на другую нужную мне команду, команда 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
Call :%Username% 2>nul || Call :@Nobody »
Вот, кстати, да!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.