Escapeing @ в переменной среды Windows - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть следующие строки в файле bat:

SET LIB="C:\tools\oracle\main\ojdbc8.jar"
SET DRIVER="Java::oracle.jdbc.driver.OracleDriver"
SET CONN="jdbc:oracle:thin:@//localhost:1521/XE"

logstash -f logstash.conf

Два первых SET работают нормально, но программа logstash жалуется, что переменная CONN не является допустимым URI. Я попытался поставить ^ перед @, чтобы избежать его, но проблема сохраняется. Как это можно исправить?

1 Ответ

1 голос
/ 17 апреля 2019

Вы в настоящее время включаете двойные кавычки как часть строк значения переменной.Вместо этого я бы рекомендовал использовать следующий синтаксис при set указании ваших переменных:

Set "VarName=StringValue"

Затем вы должны заключить двойную кавычку %VarName%, если / как требуется в любых последующих командах, которые ее используют .

В приведенном вами примере я бы посоветовал вам использовать:

Set "LIB=C:\tools\oracle\main\ojdbc8.jar"
Set "DRIVER=Java::oracle.jdbc.driver.OracleDriver"
Set "CONN=jdbc:oracle:thin:@//localhost:1521/XE"

и принимать самостоятельные решения в своем сценарии относительно того, использовать ли:

  1. %LIB%, %DRIVER% или %CONN%
  2. "%LIB%", "%DRIVER%" или "%CONN%"
  3. !LIB!, !DRIVER! или !CONN! - (расширение с задержкой)
  4. "!LIB!", "!DRIVER!" или "!CONN!" - (расширение с задержкой)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...