Как отправить аргументы командной строки в командный файл, содержащий символ "=" - PullRequest
1 голос
/ 07 декабря 2011

Я хочу вызвать пакетный файл (startup.bat tomcat), передав аргумент командной строки, например, c:> startup.bat -Dsun.lang.ClassLoader.allowArraySyntax = true

Но символ "=" заменяется пробелом. Если я поставлю c:> startup.bat -D "sun.lang.ClassLoader.allowArraySyntax = true", значение будет установлено неправильно.

Я использую Windows 7.

Есть ли в любом случае передать аргументы командной строки, содержащие "="?

Спасибо, Сива

Ответы [ 2 ]

1 голос
/ 07 декабря 2011

Вы ничего не можете с этим поделать внутри командного файла, кроме изменения %1 на %1=%2, которое работает, только если вы точно знаете, сколько параметров вы передаете, или вызнаю, что они всегда будут приходить парами.(Полагаю, вы могли бы зациклить и соединить все параметры -Dxxx со следующим параметром и поместить их без начального -D, но если у вас есть другие параметры стиля =, это может привести к путанице.)1008 *

Но вы можете сделать что-то вне командного файла, поместив ваш параметр в кавычки:

startup "-Dsun.lang.ClassLoader.allowArraySyntax=true"
0 голосов
/ 07 декабря 2011

Вы можете использовать %* для всех параметров.

В вашем пакете

@echo off
javac %*

Или вы можете добавить свой полный параметр startup.bat "-Dsun.lang.ClassLoader.allowArraySyntax=true"

И запустить.летучая мышь выглядит так (% ~ 1 удаляет окружающие кавычки из% 1)

@echo off
javac %~1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...