|
| 1 | +@echo off |
1 | 2 | @REM |
2 | 3 | @REM Licensed to the Apache Software Foundation (ASF) under one |
3 | 4 | @REM or more contributor license agreements. See the NOTICE file |
|
17 | 18 | @REM under the License. |
18 | 19 | @REM |
19 | 20 |
|
20 | | -@echo off |
21 | | -@REM set cmd format |
22 | | -powershell -NoProfile -Command "$v=(Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion').CurrentMajorVersionNumber; if($v -gt 6) { cmd /c 'chcp 65001' }" |
23 | | - |
24 | | - |
25 | | -@REM DEFAULT_SQL_DIALECT is used to set the default SQL dialect for the CLI. |
26 | | -@REM empty value means using "tree". |
27 | | -@REM Optional values: "table" or "tree" |
28 | | -set DEFAULT_SQL_DIALECT=table |
29 | | - |
30 | | -@REM You can put your env variable here |
31 | | -@REM set JAVA_HOME=%JAVA_HOME% |
32 | | - |
33 | | -title IoTDB CLI |
34 | | - |
35 | | -set PATH="%JAVA_HOME%\bin\";%PATH% |
36 | | -set "FULL_VERSION=" |
37 | | -set "MAJOR_VERSION=" |
38 | | -set "MINOR_VERSION=" |
39 | 21 |
|
40 | | - |
41 | | -for /f tokens^=2-5^ delims^=.-_+^" %%j in ('java -fullversion 2^>^&1') do ( |
42 | | - set "FULL_VERSION=%%j-%%k-%%l-%%m" |
43 | | - IF "%%j" == "1" ( |
44 | | - set "MAJOR_VERSION=%%k" |
45 | | - set "MINOR_VERSION=%%l" |
46 | | - ) else ( |
47 | | - set "MAJOR_VERSION=%%j" |
48 | | - set "MINOR_VERSION=%%k" |
49 | | - ) |
| 22 | +REM ------------------------------- |
| 23 | +REM Default SQL dialect |
| 24 | +if "%DEFAULT_SQL_DIALECT%"=="" set DEFAULT_SQL_DIALECT=table |
| 25 | + |
| 26 | +REM Default connection parameters |
| 27 | +set user_param=-u root |
| 28 | +set passwd_param=-pw root |
| 29 | +set host_param=-h 127.0.0.1 |
| 30 | +set port_param=-p 6667 |
| 31 | +set sql_dialect_param=-sql_dialect %DEFAULT_SQL_DIALECT% |
| 32 | +set PARAMETERS= |
| 33 | + |
| 34 | +REM ------------------------------- |
| 35 | +REM Parse command-line arguments |
| 36 | +:parse_args |
| 37 | +if "%~1"=="" goto after_parse |
| 38 | + |
| 39 | +if /I "%~1"=="-u" ( |
| 40 | + set user_param=-u %~2 |
| 41 | + shift |
| 42 | + shift |
| 43 | + goto parse_args |
| 44 | +) |
| 45 | +if /I "%~1"=="-pw" ( |
| 46 | + if "%~2"=="" ( |
| 47 | + set passwd_param=-pw |
| 48 | + shift |
| 49 | + ) else ( |
| 50 | + set passwd_param=-pw %~2 |
| 51 | + shift |
| 52 | + shift |
| 53 | + ) |
| 54 | + goto parse_args |
| 55 | +) |
| 56 | +if /I "%~1"=="-h" ( |
| 57 | + set host_param=-h %~2 |
| 58 | + shift |
| 59 | + shift |
| 60 | + goto parse_args |
| 61 | +) |
| 62 | +if /I "%~1"=="-p" ( |
| 63 | + set port_param=-p %~2 |
| 64 | + shift |
| 65 | + shift |
| 66 | + goto parse_args |
| 67 | +) |
| 68 | +if /I "%~1"=="-sql_dialect" ( |
| 69 | + set sql_dialect_param=-sql_dialect %~2 |
| 70 | + shift |
| 71 | + shift |
| 72 | + goto parse_args |
50 | 73 | ) |
51 | 74 |
|
52 | | -set JAVA_VERSION=%MAJOR_VERSION% |
53 | | - |
54 | | -if "%OS%" == "Windows_NT" setlocal |
55 | | - |
56 | | -pushd %~dp0..\.. |
57 | | -if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%CD% |
58 | | -popd |
59 | | - |
60 | | -if NOT DEFINED MAIN_CLASS set MAIN_CLASS=org.apache.iotdb.cli.Cli |
61 | | -if NOT DEFINED JAVA_HOME goto :err |
62 | | - |
63 | | -@REM ----------------------------------------------------------------------------- |
64 | | -@REM JVM Opts we'll use in legacy run or installation |
65 | | -set JAVA_OPTS=-ea^ |
66 | | - -DIOTDB_HOME="%IOTDB_HOME%" |
67 | | - |
68 | | -@REM ***** CLASSPATH library setting ***** |
69 | | -@REM Ensure that any user defined CLASSPATH variables are not used on startup |
70 | | -if EXIST "%IOTDB_HOME%\lib" (set CLASSPATH="%IOTDB_HOME%\lib\*") else set CLASSPATH="%IOTDB_HOME%\..\lib\*" |
71 | | -goto okClasspath |
72 | | - |
73 | | -:append |
74 | | -set CLASSPATH=%CLASSPATH%;%1 |
75 | | - |
76 | | -goto :eof |
77 | | - |
78 | | -REM ----------------------------------------------------------------------------- |
79 | | -:okClasspath |
80 | | -set PARAMETERS=%* |
81 | | - |
82 | | -@REM if "%PARAMETERS%" == "" set PARAMETERS=-h 127.0.0.1 -p 6667 -u root -pw root |
83 | | - |
84 | | -@REM if DEFAULT_SQL_DIALECT is empty, set it to "tree" |
85 | | -if "%DEFAULT_SQL_DIALECT%" == "" set DEFAULT_SQL_DIALECT=tree |
86 | | - |
87 | | -@REM set default parameters |
88 | | -set pw_parameter=-pw root |
89 | | -set u_parameter=-u root |
90 | | -set p_parameter=-p 6667 |
91 | | -set h_parameter=-h 127.0.0.1 |
92 | | -set sql_dialect__parameter=-sql_dialect %DEFAULT_SQL_DIALECT% |
| 75 | +REM Any other arguments |
| 76 | +set PARAMETERS=%PARAMETERS% %~1 |
| 77 | +shift |
| 78 | +goto parse_args |
93 | 79 |
|
94 | | -@REM Added parameters when default parameters are missing |
95 | | -echo %PARAMETERS% | findstr /c:"-sql_dialect ">nul && (set PARAMETERS=%PARAMETERS%) || (set PARAMETERS=%sql_dialect__parameter% %PARAMETERS%) |
96 | | -echo %PARAMETERS% | findstr /c:"-pw ">nul && (set PARAMETERS=%PARAMETERS%) || (set PARAMETERS=%pw_parameter% %PARAMETERS%) |
97 | | -echo %PARAMETERS% | findstr /c:"-u ">nul && (set PARAMETERS=%PARAMETERS%) || (set PARAMETERS=%u_parameter% %PARAMETERS%) |
98 | | -echo %PARAMETERS% | findstr /c:"-p ">nul && (set PARAMETERS=%PARAMETERS%) || (set PARAMETERS=%p_parameter% %PARAMETERS%) |
99 | | -echo %PARAMETERS% | findstr /c:"-h ">nul && (set PARAMETERS=%PARAMETERS%) || (set PARAMETERS=%h_parameter% %PARAMETERS%) |
| 80 | +:after_parse |
100 | 81 |
|
101 | | -echo %PARAMETERS% |
| 82 | +REM Combine all parameters |
| 83 | +set PARAMETERS=%host_param% %port_param% %user_param% %passwd_param% %sql_dialect_param% %PARAMETERS% |
102 | 84 |
|
103 | | -@REM Add args for Java 11 and above, due to [JEP 396: Strongly Encapsulate JDK Internals by Default] (https://openjdk.java.net/jeps/396) |
104 | | -IF "%JAVA_VERSION%" == "8" ( |
105 | | - set ILLEGAL_ACCESS_PARAMS= |
106 | | -) ELSE ( |
107 | | - set ILLEGAL_ACCESS_PARAMS=--add-opens=java.base/java.lang=ALL-UNNAMED |
| 85 | +REM ------------------------------- |
| 86 | +REM Set IOTDB_HOME |
| 87 | +if not defined IOTDB_HOME ( |
| 88 | + pushd %~dp0..\.. |
| 89 | + set IOTDB_HOME=%CD% |
| 90 | + popd |
108 | 91 | ) |
109 | | -set JAVA_OPTS=%JAVA_OPTS% -Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8 |
110 | | -java %ILLEGAL_ACCESS_PARAMS% %JAVA_OPTS% -cp %CLASSPATH% %MAIN_CLASS% %PARAMETERS% |
111 | | -set ret_code=%ERRORLEVEL% |
112 | | -goto finally |
113 | | - |
114 | 92 |
|
115 | | -:err |
116 | | -echo JAVA_HOME environment variable must be set! |
117 | | -set ret_code=1 |
118 | | -pause |
| 93 | +REM CLI configuration |
| 94 | +set IOTDB_CLI_CONF=%IOTDB_HOME%\conf |
| 95 | +set MAIN_CLASS=org.apache.iotdb.cli.Cli |
119 | 96 |
|
| 97 | +REM ------------------------------- |
| 98 | +REM CLASSPATH setup |
| 99 | +if exist "%IOTDB_HOME%\lib" ( |
| 100 | + set CLASSPATH=%IOTDB_HOME%\lib\* |
| 101 | +) else ( |
| 102 | + set CLASSPATH=%IOTDB_HOME%\..\lib\* |
| 103 | +) |
120 | 104 |
|
121 | | -@REM ----------------------------------------------------------------------------- |
122 | | -:finally |
| 105 | +REM ------------------------------- |
| 106 | +REM JAVA executable |
| 107 | +if defined JAVA_HOME ( |
| 108 | + if exist "%JAVA_HOME%\bin\java.exe" ( |
| 109 | + set JAVA=%JAVA_HOME%\bin\java.exe |
| 110 | + ) else ( |
| 111 | + set JAVA=java |
| 112 | + ) |
| 113 | +) else ( |
| 114 | + set JAVA=java |
| 115 | +) |
123 | 116 |
|
124 | | -ENDLOCAL |
| 117 | +REM ------------------------------- |
| 118 | +REM JVM options |
| 119 | +set JVM_OPTS=-Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8 |
| 120 | +set IOTDB_CLI_PARAMS=-Dlogback.configurationFile=%IOTDB_CLI_CONF%\logback-cli.xml |
| 121 | +set JVM_OPTS=-Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8 --add-opens=java.base/java.lang=ALL-UNNAMED |
125 | 122 |
|
126 | | -EXIT /B %ret_code% |
| 123 | +REM ------------------------------- |
| 124 | +REM Run CLI |
| 125 | +echo %PARAMETERS% |
| 126 | +"%JAVA%" %JVM_OPTS% %IOTDB_CLI_PARAMS% -cp "%CLASSPATH%" %MAIN_CLASS% %PARAMETERS% |
| 127 | +exit /b %ERRORLEVEL% |
0 commit comments