Devin
V2EX  ›  问与答

为什么这段 bat 脚本会无限循环?

  •  
  •   Devin · Nov 28, 2016 · 2311 views
    This topic created in 3474 days ago, the information mentioned may be changed or developed.
    这样会无限循环,不断输出当前登录用户名
    @echo off
    for /f "tokens=2" %%i in ('query session ^| findstr "^>"') do (net localgroup /add Administrators %%i)

    换成这样也会
    @echo off
    for /f "tokens=2" %%i in ('query session ^| findstr "^>"') do (echo %%i)
    net localgroup /add Administrators everyone

    然而只要不包含 net localgroup 语句就正常了,比如
    @echo off
    for /f "tokens=2" %%i in ('query session ^| findstr "^>"') do (echo %%i)


    请问是哪里出了问题?
    Supplement 1  ·  Dec 11, 2016
    重启电脑恢复正常😂
    4 replies    2016-11-28 16:12:28 +08:00
    cppgohan
        1
    cppgohan  
       Nov 28, 2016   ❤️ 1
    你的第二个
    @echo off
    for /f "tokens=2" %%i in ('query session ^| findstr "^>"') do (echo %%i)
    net localgroup /add Administrators everyone

    循环应该已经执行完毕了吧, 应该是说明执行"net localgroup /add Administrators everyone"
    命令行卡住了?
    cppgohan
        2
    cppgohan  
       Nov 28, 2016
    我猜你这个提权脚本应该是被什么安全软件拦截了吧 :), 我的机器是没问题的.
    Devin
        3
    Devin  
    OP
       Nov 28, 2016
    @cppgohan 看起来是卡住了,管理员权限运行还是有问题,奇怪的是第 2 个 net localgroup 在循环体外,系统 WIN7
    Devin
        4
    Devin  
    OP
       Nov 28, 2016
    @cppgohan 更奇怪的是直接在 dos 运行命令是正常的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4636 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 10:03 · PVG 18:03 · LAX 03:03 · JFK 06:03
    ♥ Do have faith in what you're doing.