Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] В зависимости от имени пользователя перейти в нужную строку (http://forum.oszone.net/showthread.php?t=329494)

Valek271183 02-09-2017 22:18 2762136

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

Iska 02-09-2017 22:29 2762138

Просто «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 2762140

а если не будет такого имени, как пропустить всех Васей и Петей, они не запустятся по очереди один за другим? мне надо что бы если ничего не совпало перейти на другую нужную мне команду, команда Call так и сделает?

Iska 02-09-2017 23:03 2762146

Цитата:

Цитата Valek271183
мне надо что бы если ничего не совпало перейти на другую нужную мне команду, команда 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 2762183

Valek271183,
Вот вариант. Если ничего не совпало, Call вызовет нужную секцию обработки
Код:

@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 2762185

Цитата:

Цитата megaloman
Call :%Username% 2>nul || Call :@Nobody »

Вот, кстати, да!


Время: 13:38.

Время: 13:38.
© OSzone.net 2001-