【问题标题】:Can't run a command in a batch file while in command prompt it executes在命令提示符下执行时无法在批处理文件中运行命令
【发布时间】:2015-09-16 13:37:22
【问题描述】:

现在被困了一段时间,我尝试在这个论坛和类似论坛上找到答案,但没有任何效果。

我得到了这个命令:

 FOR /F "tokens=3 skip=1" %i IN (C:\logoff\query.txt) DO logoff %i /server:192.168.0.231

基本上它从 query.txt 文件中获取数字,并通过用户的会话 ID 号从服务器上注销用户。

如果我在命令提示符下执行命令,它可以工作,但我似乎无法让它批量工作。我已经尝试将百分比符号加倍,就像论坛中有人建议的那样 - 没有。

我假设确认命令应该在批处理上运行它应该使用“运行...”执行,但它没有......

是命令以FOR开头的问题还是什么情况?我放弃了。。

【问题讨论】:

    标签: windows batch-file command-line cmd


    【解决方案1】:

    for 可替换参数(包含迭代当前值的“变量”)使用%x 语法。但在批处理文件中,百分号需要转义,语法为%%x(参见for /?)。

    FOR /F "tokens=3 skip=1" %%i IN (C:\logoff\query.txt) DO logoff %%i /server:192.168.0.231
                             ^^                                     ^^
    

    【讨论】:

      【解决方案2】:

      试试这个:

      for /F "usebackq tokens=3 skip=1 delims=|" %%i in ("C:\logoff\query.txt") do logoff %%i /server:192.168.0.231
      

      我觉得你的问题就像 @MC ND 所说的,而你忘记使用 delims。

      你的 query.txt 必须是这样的:

      1|1|111
      2|2|222
      3|3|333
      

      输出:

      logoff 222 /server:192.168.0.231
      logoff 333 /server:192.168.0.231
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-27
        • 2015-03-28
        • 1970-01-01
        相关资源
        最近更新 更多