2015-03-14 4 views
1

У меня есть следующий скрипт, чтобы найти класс в нескольких 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 

Как можно исправить эту ошибку?

ответ

2

Вы должны использовать %% вместо % для переменной цикла в пакетных файлах. То есть, замените %G на %%G. В противном случае это будет интерпретироваться как аргумент.

+0

Спасибо. Это изменилось. Теперь, по-видимому, поиск строки без котировок - дает мне не найденное исключение – Jay

+1

@Jay Замените '% ARG%' ''% ARG% "'. – user4098326

+0

set ARG =% 1 для/R %% G in (* .jar) do @jar -tvf %% G | find% ARG%> NUL && echo %% G - Это работает – Jay

Смежные вопросы