【问题标题】:pipe character "|" was unexpected at this time管道字符“|”这时候出乎意料
【发布时间】:2015-03-14 05:30:37
【问题描述】:

我有以下脚本可以在多个 JAR 中查找一个类。类名作为字符串参数传递。

set ARG=%1
for /R %G in (*.jar) do @jar -tvf %G | find %ARG% > NUL && echo %G

给我以下错误

> findClassInJar.bat "ContentPartition"
> set ARG="ContentPartition"
| was unexpected at this time.
> for /R G | find "ContentPartition" > NUL && echo G

如何解决这个错误?

【问题讨论】:

    标签: windows batch-file for-loop


    【解决方案1】:

    对于批处理文件中的循环变量,您应该使用%% 而不是%。即,将%G 替换为%%G。否则,它将被解释为参数。

    【讨论】:

    • 谢谢。做了改变。现在显然它搜索没有引号的字符串 - 给了我一个文件未找到异常
    • @Jay 将%ARG% 替换为"%ARG%"
    • 在 (*.jar) 中为 /R %%G 设置 ARG=%1 执行 @jar -tvf %%G |找到 %ARG% > NUL && echo %%G - 这行得通
    猜你喜欢
    • 2011-12-07
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    • 1970-01-01
    • 1970-01-01
    • 2014-09-11
    • 2018-07-14
    • 1970-01-01
    相关资源
    最近更新 更多