【问题标题】:Error "| was unexpected at this time."错误“|此时是意外的。”
【发布时间】:2017-11-22 08:03:22
【问题描述】:

我正在使用以下代码删除使用端口 8080 的程序,但出现错误| was unexpected at this time.,我该怎么办?

FOR /F "tokens=5 delims= " %P IN ('netstat -a -n -o | findstr :8080') DO TaskKill.exe /PID %P

【问题讨论】:

    标签: batch-file for-loop findstr netstat taskkill


    【解决方案1】:

    for 中的条件必须先由批处理解析器解析,然后才能将其作为可执行命令传递给 IN() 子句。要保留 、&、|、^ 或 % 等特殊字符,您必须在脚本中对它们进行转义。 Batch 中的转义字符是“^”。

    用插入符号转义竖线:

    FOR /F "tokens=5 delims= " %P IN ('netstat -a -n -o ^| findstr :8080') DO TaskKill.exe /PID %P
    

    我还可以补充一点,当保存为 .bat 时,百分比字符也必须转义。您需要使用“%%P”而不是“%P”。

    【讨论】:

    • 如果你要edit 并解释为什么发帖人应该这样做,这将是一个更好的答案。这将是一个具有教育意义的答案,不仅有益于提出这个问题的人,也有益于未来看到它的其他人。 这样做没有提供任何关于为什么必须这样做的信息。
    • 更好的答案。 :-)
    猜你喜欢
    • 2013-07-06
    • 1970-01-01
    • 1970-01-01
    • 2018-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-22
    • 1970-01-01
    相关资源
    最近更新 更多