无法在批处理文件中运行命令,而在命令提示符下它会执行

时间:2015-09-16 13:37:22

标签: windows batch-file command-line cmd

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

我收到了这个命令:

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

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

如果我在命令提示符下执行命令,它会起作用,但我似乎无法让它在批处理中运行。我试过加倍百分号,就像有人在论坛上建议的那样 - 没什么。

我假设确认该命令应该在批处理上运行,它应该使用"运行...",它不会......但

命令是否以FOR开头或者是什么情况?我放弃..

2 个答案:

答案 0 :(得分: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
                         ^^                                     ^^

答案 1 :(得分:0)

试试这个:

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