我正在尝试将Logstash设置为Windows机器上的服务,但它似乎不接受路径中的空格。如果我运行以下命令:
logstash.bat agent -f "C:\Program Files (x86)\Logstash\config\setup.conf"
然后Logstash抱怨错误“此时文件意外”。
我知道Logstash对反斜杠不满意,所以我也尝试使用正斜杠,但没有运气。所以我开始怀疑Logstash不接受Windows上的路径中的空格,有人可以确认吗?
答案 0 :(得分:2)
看起来可能是.BAT中存在一个错误,它会阻止使用空格的名称。您需要使用受损格式的目录名称dir /x "C:"
来查看特定目录的托管名称,但它可能是PROGRA~1
)
如果您真的想在名称中使用空格而不进行修改,可以修补logstash.bat(修改if "%*" == "deps"
到if "%~1" == deps
的行),然后使用"C:\\Program Files (x86)\\Logstash\\config\\setup.conf"
或"C:/Program Files (x86)/Logstash/config/setup.conf"
作为命令行参数。
答案 1 :(得分:1)
对我来说,解决该问题的方法是在logstash.bat顶部取消设置CLASSPATH
环境变量:
@echo off
setlocal enabledelayedexpansion
set params='%*'
SET CLASSPATH=
SET JAVA_OPTS=