标题: [系统相关] 批处理判断是否等于多个用户 [打印本页]
作者: 3512747 时间: 2022-10-18 10:48 标题: 批处理判断是否等于多个用户
请教各位大神,如何判断系统当前登录用户是否等于1或2或3....
如果等于就执行条件一,不等于就执行条件二。
用VBS实现的话没有黑窗口显示效果是不是更好一些。
作者: fzp070 时间: 2022-10-18 11:17
这样可以不,双引号中的1改为你想判断的用户名- @echo off
- echo %username% |find "1" >nul &&goto 1
- pause
- :1
- echo 等于1
- pause
复制代码
作者: 3512747 时间: 2022-10-18 11:27
回复 2# fzp070
多个用户的话要怎么操作,万分感谢!
作者: 3512747 时间: 2022-10-18 11:31
回复 2# fzp070
我现在写的和目前这个差不多 就是不知道要怎么增加多个条件
比如:如果(当前用户=“1” 或 当前用户=“2” 或 当前用户=“3“)
运行(c:\1.exe)
否则
运行(c:\2.exe)
作者: fzp070 时间: 2022-10-18 11:44
回复 4# 3512747
多增加几次判断,你看看这样子可以吗?- @echo off
- ::判断系统当前用户名
- echo %username% |find "1" >nul &&goto 1
- echo %username% |find "2" >nul &&goto 2
- echo %username% |find "3" >nul &&goto 3
- echo 当前用户名不等于1和2和3
- pause
-
- :1
- echo 当前用户名等于1
- pause
-
- :2
- echo 当前用户名等于2
- pause
-
- :3
- echo 当前用户名等于3
- pause
复制代码
作者: holley 时间: 2022-10-18 12:08
回复 1# 3512747
这种?- :2
- if /i "%username%"=="Administrator" (echo 当前用户为Administrator) else (goto 3)
- :3
- if /i "%username%"=="1" (echo 当前用户为1) else (goto 4)
- :1
- if /i "%username%"=="2" (echo 当前用户为2) else (goto 2)
- :4
- if /i "%username%"=="3" (echo 当前用户为3) else (goto 5)
-
- :5
-
- pause>nul
复制代码
作者: fzp070 时间: 2022-10-18 12:42
在6楼基础上改的,如果你只需要运行一个exe程序,也可以如下这样操作,如果要有很多动作,就不适合- @echo off
- if /i "%username%"=="1" echo 当前用户为1 &start c:\1.exe
- if /i "%username%"=="2" echo 当前用户为2 &start c:\2.exe
- if /i "%username%"=="3" echo 当前用户为3 &start c:\3.exe
- pause>nul
复制代码
作者: Batcher 时间: 2022-10-18 15:05
回复 2# fzp070
这样用 find 是不对的。
比如两个用 abc 和 abcd 这种写法查找 abc 的时候会把 abcd 也错误的找出来。
作者: Batcher 时间: 2022-10-18 15:10
回复 4# 3512747
test_1.bat- @echo off
- if /i "%username%" equ "AAA" (
- start "" "C:\Test Folder\1.exe"
- ) else if /i "%username%" equ "BBB" (
- start "" "C:\Test Folder\1.exe"
- ) else if /i "%username%" equ "CCC" (
- start "" "C:\Test Folder\1.exe"
- ) else (
- start "" "C:\Test Folder\2.exe"
- )
复制代码
作者: Batcher 时间: 2022-10-18 15:14
回复 4# 3512747
test_2.bat- @echo off
- if /i "%username%" equ "AAA" (
- goto :UsersYes
- ) else if /i "%username%" equ "BBB" (
- goto :UsersYes
- ) else if /i "%username%" equ "CCC" (
- goto :UsersYes
- ) else (
- goto :UsersNo
- )
-
- :UsersYes
- start "" "C:\Test Folder\1.exe"
- REM 很多代码不方便重复写在 if 语句里面
- goto :eof
-
- :UsersNo
- start "" "C:\Test Folder\2.exe"
- REM 很多代码不方便重复写在 if 语句里面
- goto :eof
复制代码
作者: fzp070 时间: 2022-10-18 15:22
回复 8# Batcher
是的,我也发现了。还是用if判断这样能确保一致性。复制代码
作者: qixiaobin0715 时间: 2022-10-18 16:26
本帖最后由 qixiaobin0715 于 2022-10-18 16:40 编辑
- echo,%USERNAME%|findstr /i /x /l "AAA BBB CCC" >nul
- if %ERRORLEVEL% equ 0 (
- 执行一方案
- ) else (
- 执行二方案
- )
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |