This is an automated email from the ASF dual-hosted git repository.

critas pushed a commit to branch wx_script
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit b87c14aec656b97ad637c0e329fda59b82ca67aa
Author: CritasWang <[email protected]>
AuthorDate: Thu Apr 24 15:32:24 2025 +0800

    pref: Adjustments to sbin and tools Scripts
    
    1.  Script Central Management: Migrate scripts scattered across different 
projects to the scripts/sbin and scripts/tools directories under the root 
directory.
    2. Script Functional Classification: Categorize and move scripts to 
different files or subdirectories based on their functionality. For frequently 
used scripts, their current locations will be preserved to minimize the impact 
on existing workflows.
    3. Create a Windows subfolder under the sbin directory (sbin, sbin/windows).
---
 distribution/src/assembly/ainode.xml               | 18 ++++++--
 distribution/src/assembly/all.xml                  | 50 +++++++---------------
 distribution/src/assembly/cli.xml                  | 17 +++++++-
 distribution/src/assembly/confignode.xml           | 41 ++++++++++++------
 distribution/src/assembly/datanode.xml             | 45 +++++++++----------
 iotdb-client/cli/src/assembly/cli.xml              | 10 +++++
 iotdb-core/ainode/ainode.xml                       | 27 ++++++++++++
 iotdb-core/confignode/src/assembly/confignode.xml  | 28 ++++++++++--
 iotdb-core/datanode/src/assembly/server.xml        | 44 +++++++++++++------
 .../resources => scripts}/conf/ainode-env.sh       |  0
 .../resources => scripts}/conf/confignode-env.sh   |  0
 .../resources => scripts}/conf/datanode-env.sh     |  0
 .../sbin => scripts/conf}/iotdb-common.sh          |  0
 .../conf => scripts/conf/windows}/ainode-env.bat   | 11 ++---
 .../conf/windows}/confignode-env.bat               |  2 +-
 .../conf => scripts/conf/windows}/datanode-env.bat |  2 +-
 .../sbin => scripts/sbin/cluster}/start-all.sh     |  2 +-
 .../sbin => scripts/sbin/cluster}/stop-all.sh      |  2 +-
 .../resources => scripts}/sbin/start-ainode.sh     | 17 ++++----
 .../resources => scripts}/sbin/start-cli.sh        |  0
 .../resources => scripts}/sbin/start-confignode.sh |  2 +-
 .../resources => scripts}/sbin/start-datanode.sh   |  2 +-
 .../resources => scripts}/sbin/start-standalone.sh |  0
 .../resources => scripts}/sbin/stop-ainode.sh      |  0
 .../resources => scripts}/sbin/stop-confignode.sh  |  2 +-
 .../resources => scripts}/sbin/stop-datanode.sh    |  2 +-
 .../resources => scripts}/sbin/stop-standalone.sh  |  0
 .../sbin => scripts/sbin/windows}/start-ainode.bat | 12 +++---
 .../sbin/windows/start-cli-table.bat               |  4 +-
 .../sbin => scripts/sbin/windows}/start-cli.bat    |  2 +-
 .../sbin/windows}/start-confignode.bat             |  8 ++--
 .../sbin/windows}/start-datanode.bat               | 14 +++---
 .../sbin/windows}/start-standalone.bat             | 12 +++---
 .../sbin => scripts/sbin/windows}/stop-ainode.bat  |  8 ++--
 .../sbin/windows}/stop-confignode.bat              | 13 +++---
 .../sbin/windows}/stop-datanode.bat                | 13 +++---
 .../sbin/windows}/stop-standalone.bat              | 10 ++---
 .../resources => scripts}/tools/export-data.sh     |  0
 .../resources => scripts}/tools/import-data.sh     |  0
 .../resources => scripts}/tools/load-tsfile.sh     |  2 +-
 .../tools => scripts/tools/ops}/backup.sh          |  2 +-
 .../tools => scripts/tools/ops}/collect-info.sh    |  2 +-
 .../tools/ops}/daemon-confignode.sh                |  2 +-
 .../sbin => scripts/tools/ops}/daemon-datanode.sh  |  2 +-
 .../sbin => scripts/tools/ops}/destroy-all.sh      | 18 ++++----
 .../tools/ops}/destroy-confignode.sh               |  2 +-
 .../sbin => scripts/tools/ops}/destroy-datanode.sh |  2 +-
 .../sbin => scripts/tools/ops}/health_check.sh     |  4 +-
 .../sbin => scripts/tools/ops}/remove-ainode.sh    | 23 +++++-----
 .../tools/schema}/export-schema.sh                 |  2 +-
 .../tools/schema}/import-schema.sh                 |  2 +-
 .../tools/schema/print-pb-tree-file.sh             |  2 +-
 .../tools/schema/print-schema-log.sh               |  2 +-
 .../check-overlap-sequence-files-and-repair.sh     |  2 +-
 .../tools/tsfile/overlap-statistic-tool.sh         |  2 +-
 .../tools/tsfile/print-iotdb-data-dir.sh           |  2 +-
 .../tools/tsfile/print-tsfile-resource-files.sh    |  2 +-
 .../tools/tsfile/print-tsfile.sh                   |  2 +-
 .../tools/tsfile/settle-tsfile.sh                  |  0
 .../tools/tsfile/split-tsfile-tool.sh              |  2 +-
 .../tools/tsfile/validate-tsfile.sh                |  2 +-
 .../tools/windows}/export-data.bat                 |  2 +-
 .../tools/windows}/import-data.bat                 |  2 +-
 .../tools/windows}/load-tsfile.bat                 |  2 +-
 .../tools => scripts/tools/windows/ops}/backup.bat |  6 +--
 .../tools/windows/ops}/collect-info.bat            |  6 +--
 .../tools/windows/ops}/destroy-all.bat             |  2 +-
 .../tools/windows/ops}/destroy-confignode.bat      |  2 +-
 .../tools/windows/ops}/destroy-datanode.bat        |  2 +-
 .../tools/windows/ops}/health_check.bat            | 14 +++---
 .../tools/windows/ops}/remove-ainode.bat           | 20 +++++----
 .../tools/windows/schema}/export-schema.bat        |  2 +-
 .../tools/windows/schema}/import-schema.bat        |  2 +-
 .../tools/windows}/schema/print-pb-tree-file.bat   |  2 +-
 .../tools/windows}/schema/print-schema-log.bat     |  2 +-
 .../check-overlap-sequence-files-and-repair.bat    |  2 +-
 .../windows}/tsfile/overlap-statistic-tool.bat     |  2 +-
 .../tools/windows}/tsfile/print-iotdb-data-dir.bat |  2 +-
 .../tsfile/print-tsfile-resource-files.bat         |  2 +-
 .../tools/windows}/tsfile/print-tsfile.bat         |  2 +-
 .../tools/windows}/tsfile/settle-tsfile.bat        |  2 +-
 .../tools/windows}/tsfile/split-tsfile-tool.bat    |  2 +-
 .../tools/windows}/tsfile/validate-tsfile.bat      |  2 +-
 83 files changed, 340 insertions(+), 243 deletions(-)

diff --git a/distribution/src/assembly/ainode.xml 
b/distribution/src/assembly/ainode.xml
index c4bfca25c52..74c8623a599 100644
--- a/distribution/src/assembly/ainode.xml
+++ b/distribution/src/assembly/ainode.xml
@@ -28,19 +28,29 @@
     <baseDirectory>apache-iotdb-${project.version}-ainode-bin</baseDirectory>
     <fileSets>
         <fileSet>
-            
<directory>${project.basedir}/../iotdb-core/ainode/target/apache-iotdb-ainode-${project.version}/apache-iotdb-ainode-${project.version}/conf</directory>
+            <directory>
+                
${project.basedir}/../iotdb-core/ainode/target/apache-iotdb-ainode-${project.version}/apache-iotdb-ainode-${project.version}/conf</directory>
             <outputDirectory>${file.separator}/conf</outputDirectory>
         </fileSet>
         <fileSet>
-            
<directory>${project.basedir}/../iotdb-core/ainode/target/apache-iotdb-ainode-${project.version}/apache-iotdb-ainode-${project.version}/sbin</directory>
+            <directory>
+                
${project.basedir}/../iotdb-core/ainode/target/apache-iotdb-ainode-${project.version}/apache-iotdb-ainode-${project.version}/sbin</directory>
             <outputDirectory>${file.separator}/sbin</outputDirectory>
+            <fileMode>0755</fileMode>
         </fileSet>
         <fileSet>
-            
<directory>${project.basedir}/../iotdb-core/ainode/target/apache-iotdb-ainode-${project.version}/apache-iotdb-ainode-${project.version}/lib</directory>
+            <directory>
+                
${project.basedir}/../iotdb-core/ainode/target/apache-iotdb-ainode-${project.version}/apache-iotdb-ainode-${project.version}/lib</directory>
             <outputDirectory>${file.separator}/lib</outputDirectory>
         </fileSet>
+        <fileSet>
+            <directory>
+                
${project.basedir}/../iotdb-core/ainode/target/apache-iotdb-ainode-${project.version}/apache-iotdb-ainode-${project.version}/tools</directory>
+            <outputDirectory>${file.separator}/tools</outputDirectory>
+            <fileMode>0755</fileMode>
+        </fileSet>
     </fileSets>
     <componentDescriptors>
         <componentDescriptor>common-files.xml</componentDescriptor>
     </componentDescriptors>
-</assembly>
+</assembly>
\ No newline at end of file
diff --git a/distribution/src/assembly/all.xml 
b/distribution/src/assembly/all.xml
index c6da9392929..b77f71a32dc 100644
--- a/distribution/src/assembly/all.xml
+++ b/distribution/src/assembly/all.xml
@@ -59,43 +59,32 @@
             
<directory>${project.basedir}/../iotdb-core/node-commons/src/assembly/resources/conf</directory>
         </fileSet>
         <fileSet>
-            <outputDirectory>sbin</outputDirectory>
-            
<directory>${project.basedir}/../iotdb-core/datanode/src/assembly/resources/sbin</directory>
-            <fileMode>0755</fileMode>
-        </fileSet>
-        <fileSet>
-            <outputDirectory>sbin</outputDirectory>
-            
<directory>${project.basedir}/../iotdb-core/confignode/src/assembly/resources/sbin</directory>
-            <fileMode>0755</fileMode>
-        </fileSet>
-        <fileSet>
-            <outputDirectory>sbin</outputDirectory>
-            
<directory>${project.basedir}/../iotdb-core/node-commons/src/assembly/resources/sbin</directory>
-            <fileMode>0755</fileMode>
-        </fileSet>
-        <fileSet>
-            <outputDirectory>tools</outputDirectory>
-            
<directory>${project.basedir}/../iotdb-core/datanode/src/assembly/resources/tools</directory>
+            <outputDirectory>conf</outputDirectory>
+            <directory>${project.basedir}/../scripts/conf</directory>
+            <excludes>
+                <exclude>ainode-env.*</exclude>
+                <exclude>**/ainode-env.*</exclude>
+            </excludes>
             <fileMode>0755</fileMode>
         </fileSet>
         <fileSet>
             <outputDirectory>sbin</outputDirectory>
-            
<directory>${project.basedir}/../iotdb-client/cli/src/assembly/resources/sbin</directory>
+            <directory>${project.basedir}/../scripts/sbin</directory>
+            <excludes>
+                <exclude>*ainode.*</exclude>
+                <exclude>**/*ainode.*</exclude>
+            </excludes>
             <fileMode>0755</fileMode>
         </fileSet>
         <fileSet>
             <outputDirectory>tools</outputDirectory>
-            
<directory>${project.basedir}/../iotdb-client/cli/src/assembly/resources/tools</directory>
+            <directory>${project.basedir}/../scripts/tools</directory>
+            <excludes>
+                <exclude>*ainode.*</exclude>
+                <exclude>**/*ainode.*</exclude>
+            </excludes>
             <fileMode>0755</fileMode>
         </fileSet>
-        <!--        <fileSet>-->
-        <!--            <outputDirectory>datanode</outputDirectory>-->
-        <!--            
<directory>${project.basedir}/../distribution/target/apache-iotdb-${project.version}-all-bin/apache-iotdb-${project.version}-all-bin/datanode</directory>-->
-        <!--        </fileSet>-->
-        <!--        <fileSet>-->
-        <!--            <outputDirectory>confignode</outputDirectory>-->
-        <!--            
<directory>${project.basedir}/../distribution/target/apache-iotdb-${project.version}-all-bin/apache-iotdb-${project.version}-all-bin/confignode</directory>-->
-        <!--        </fileSet>-->
     </fileSets>
     <files>
         <file>
@@ -104,13 +93,6 @@
             <fileMode>0755</fileMode>
         </file>
     </files>
-    <!--    <files>-->
-    <!--        <file>-->
-    <!--            
<source>${project.basedir}/../server/src/assembly/resources/conf/datanode-env.sh</source>-->
-    <!--            <destName>datanode/conf/datanode-env.sh</destName>-->
-    <!--            <fileMode>0755</fileMode>-->
-    <!--        </file>-->
-    <!--    </files>-->
     <componentDescriptors>
         <componentDescriptor>common-files.xml</componentDescriptor>
     </componentDescriptors>
diff --git a/distribution/src/assembly/cli.xml 
b/distribution/src/assembly/cli.xml
index 1c62df4735f..6f4eed7f7c2 100644
--- a/distribution/src/assembly/cli.xml
+++ b/distribution/src/assembly/cli.xml
@@ -38,13 +38,26 @@
     </dependencySets>
     <fileSets>
         <fileSet>
+            <directory>${project.basedir}/../scripts/sbin</directory>
             <outputDirectory>sbin</outputDirectory>
-            
<directory>${project.basedir}/../iotdb-client/cli/src/assembly/resources/sbin</directory>
+            <includes>
+                <include>*cli.*</include>
+                <include>**/*cli.*</include>
+                <include>**/*cli-table.*</include>
+            </includes>
             <fileMode>0755</fileMode>
         </fileSet>
         <fileSet>
+            <directory>${project.basedir}/../scripts/tools</directory>
             <outputDirectory>tools</outputDirectory>
-            
<directory>${project.basedir}/../iotdb-client/cli/src/assembly/resources/tools</directory>
+            <includes>
+                <include>*data.*</include>
+                <include>*schema.*</include>
+                <include>*tsfile.*</include>
+                <include>**/*data.*</include>
+                <include>**/*schema.*</include>
+                <include>**/*tsfile.*</include>
+            </includes>
             <fileMode>0755</fileMode>
         </fileSet>
     </fileSets>
diff --git a/distribution/src/assembly/confignode.xml 
b/distribution/src/assembly/confignode.xml
index abe88fce388..23665f09a2e 100644
--- a/distribution/src/assembly/confignode.xml
+++ b/distribution/src/assembly/confignode.xml
@@ -38,28 +38,41 @@
     </dependencySets>
     <fileSets>
         <fileSet>
-            
<directory>${project.basedir}/../iotdb-core/confignode/src/assembly/resources/sbin</directory>
-            <outputDirectory>sbin</outputDirectory>
-            <fileMode>0755</fileMode>
+            
<directory>${project.basedir}/../iotdb-core/confignode/src/assembly/resources/conf</directory>
+            <outputDirectory>conf</outputDirectory>
         </fileSet>
         <fileSet>
-            <outputDirectory>sbin</outputDirectory>
-            
<directory>${project.basedir}/../iotdb-core/node-commons/src/assembly/resources/sbin</directory>
-            <fileMode>0755</fileMode>
+            <outputDirectory>conf</outputDirectory>
+            
<directory>${project.basedir}/../iotdb-core/node-commons/src/assembly/resources/conf</directory>
         </fileSet>
         <fileSet>
-            
<directory>${project.basedir}/../iotdb-core/confignode/src/assembly/resources/conf</directory>
+            <directory>${project.basedir}/../scripts/conf</directory>
             <outputDirectory>conf</outputDirectory>
+            <includes>
+                <include>iotdb-common.*</include>
+                <include>confignode-env.*</include>
+                <include>**/confignode-env.*</include>
+            </includes>
+            <fileMode>0755</fileMode>
         </fileSet>
         <fileSet>
-            <outputDirectory>conf</outputDirectory>
-            
<directory>${project.basedir}/../iotdb-core/node-commons/src/assembly/resources/conf</directory>
+            <directory>${project.basedir}/../scripts/sbin</directory>
+            <outputDirectory>sbin</outputDirectory>
+            <includes>
+                <include>*confignode.*</include>
+                <include>**/*confignode.*</include>
+            </includes>
+            <fileMode>0755</fileMode>
+        </fileSet>
+        <fileSet>
+            <directory>${project.basedir}/../scripts/tools</directory>
+            <outputDirectory>tools</outputDirectory>
+            <includes>
+                <include>*confignode.*</include>
+                <include>**/*confignode.*</include>
+            </includes>
+            <fileMode>0755</fileMode>
         </fileSet>
-        <!--    <fileSet>-->
-        <!--      
<directory>${project.basedir}/../confignode/src/assembly/resources/tools</directory>-->
-        <!--      <outputDirectory>tools</outputDirectory>-->
-        <!--      <fileMode>0755</fileMode>-->
-        <!--    </fileSet>-->
     </fileSets>
     <componentDescriptors>
         <componentDescriptor>common-files.xml</componentDescriptor>
diff --git a/distribution/src/assembly/datanode.xml 
b/distribution/src/assembly/datanode.xml
index 9075bea61e4..016059a903a 100644
--- a/distribution/src/assembly/datanode.xml
+++ b/distribution/src/assembly/datanode.xml
@@ -38,47 +38,42 @@
         </dependencySet>
     </dependencySets>
     <fileSets>
-        <!--        <fileSet>-->
-        <!--            <outputDirectory>conf</outputDirectory>-->
-        <!--            
<directory>${project.basedir}/../server/src/assembly/resources/conf</directory>-->
-        <!--        </fileSet>-->
         <fileSet>
             <outputDirectory>conf</outputDirectory>
             
<directory>${project.basedir}/../iotdb-core/node-commons/src/assembly/resources/conf</directory>
         </fileSet>
         <fileSet>
-            <outputDirectory>sbin</outputDirectory>
-            
<directory>${project.basedir}/../iotdb-core/datanode/src/assembly/resources/sbin</directory>
-            <fileMode>0755</fileMode>
-        </fileSet>
-        <fileSet>
-            <outputDirectory>sbin</outputDirectory>
-            
<directory>${project.basedir}/../iotdb-core/node-commons/src/assembly/resources/sbin</directory>
-            <fileMode>0755</fileMode>
-        </fileSet>
-        <fileSet>
-            <outputDirectory>tools</outputDirectory>
-            
<directory>${project.basedir}/../iotdb-core/datanode/src/assembly/resources/tools</directory>
+            <directory>${project.basedir}/../scripts/conf</directory>
+            <outputDirectory>conf</outputDirectory>
+            <includes>
+                <include>datanode-env.*</include>
+                <include>**/datanode-env.*</include>
+            </includes>
             <fileMode>0755</fileMode>
         </fileSet>
         <fileSet>
+            <directory>${project.basedir}/../scripts/sbin</directory>
             <outputDirectory>sbin</outputDirectory>
-            
<directory>${project.basedir}/../iotdb-client/cli/src/assembly/resources/sbin</directory>
+            <includes>
+                <include>*datanode.*</include>
+                <include>**/*datanode.*</include>
+                <include>*cli.*</include>
+                <include>**/*cli.*</include>
+                <include>**/*cli-table.*</include>
+            </includes>
             <fileMode>0755</fileMode>
         </fileSet>
         <fileSet>
+            <directory>${project.basedir}/../scripts/tools</directory>
             <outputDirectory>tools</outputDirectory>
-            
<directory>${project.basedir}/../iotdb-client/cli/src/assembly/resources/tools</directory>
+            <excludes>
+                <exclude>**/*confignode.*</exclude>
+                <exclude>**/*all.*</exclude>
+                <exclude>**/*ainode.*</exclude>
+            </excludes>
             <fileMode>0755</fileMode>
         </fileSet>
     </fileSets>
-    <files>
-        <file>
-            
<source>${project.basedir}/../iotdb-core/datanode/src/assembly/resources/conf/datanode-env.sh</source>
-            <destName>conf/datanode-env.sh</destName>
-            <fileMode>0755</fileMode>
-        </file>
-    </files>
     <componentDescriptors>
         <componentDescriptor>common-files.xml</componentDescriptor>
     </componentDescriptors>
diff --git a/iotdb-client/cli/src/assembly/cli.xml 
b/iotdb-client/cli/src/assembly/cli.xml
index c4e823f967f..17c240d7e2d 100644
--- a/iotdb-client/cli/src/assembly/cli.xml
+++ b/iotdb-client/cli/src/assembly/cli.xml
@@ -39,5 +39,15 @@
             <directory>src/assembly/resources</directory>
             <outputDirectory>${file.separator}</outputDirectory>
         </fileSet>
+        <fileSet>
+            <directory>${project.basedir}/../../scripts/sbin</directory>
+            <outputDirectory>sbin</outputDirectory>
+            <includes>
+                <include>*cli.*</include>
+                <include>**/*cli.*</include>
+                <include>**/*cli-table.*</include>
+            </includes>
+            <fileMode>0755</fileMode>
+        </fileSet>
     </fileSets>
 </assembly>
diff --git a/iotdb-core/ainode/ainode.xml b/iotdb-core/ainode/ainode.xml
index 480c3e7221e..f11314c7c5a 100644
--- a/iotdb-core/ainode/ainode.xml
+++ b/iotdb-core/ainode/ainode.xml
@@ -58,5 +58,32 @@
                 <include>*.whl</include>
             </includes>
         </fileSet>
+        <fileSet>
+            <directory>${project.basedir}/../../scripts/conf</directory>
+            <outputDirectory>conf</outputDirectory>
+            <includes>
+                <include>ainode-env.*</include>
+                <include>**/ainode-env.*</include>
+            </includes>
+            <fileMode>0755</fileMode>
+        </fileSet>
+        <fileSet>
+            <directory>${project.basedir}/../../scripts/sbin</directory>
+            <outputDirectory>sbin</outputDirectory>
+            <includes>
+                <include>*ainode.*</include>
+                <include>**/*ainode.*</include>
+            </includes>
+            <fileMode>0755</fileMode>
+        </fileSet>
+        <fileSet>
+            <directory>${project.basedir}/../../scripts/tools</directory>
+            <outputDirectory>tools</outputDirectory>
+            <includes>
+                <include>*ainode.*</include>
+                <include>**/*ainode.*</include>
+            </includes>
+            <fileMode>0755</fileMode>
+        </fileSet>
     </fileSets>
 </assembly>
diff --git a/iotdb-core/confignode/src/assembly/confignode.xml 
b/iotdb-core/confignode/src/assembly/confignode.xml
index 638e4793475..0c2e66d8f95 100644
--- a/iotdb-core/confignode/src/assembly/confignode.xml
+++ b/iotdb-core/confignode/src/assembly/confignode.xml
@@ -37,8 +37,30 @@
             <outputDirectory>conf</outputDirectory>
         </fileSet>
         <fileSet>
-            <directory>src/assembly/resources/sbin</directory>
+            <directory>${project.basedir}/../../scripts/conf</directory>
+            <outputDirectory>conf</outputDirectory>
+            <includes>
+                <include>confignode-env.*</include>
+                <include>**/confignode-env.*</include>
+            </includes>
+            <fileMode>0755</fileMode>
+        </fileSet>
+        <fileSet>
+            <directory>${project.basedir}/../../scripts/sbin</directory>
             <outputDirectory>sbin</outputDirectory>
+            <includes>
+                <include>*confignode.*</include>
+                <include>**/*confignode.*</include>
+            </includes>
+            <fileMode>0755</fileMode>
+        </fileSet>
+        <fileSet>
+            <directory>${project.basedir}/../../scripts/tools</directory>
+            <outputDirectory>tools</outputDirectory>
+            <includes>
+                <include>*confignode.*</include>
+                <include>**/*confignode.*</include>
+            </includes>
             <fileMode>0755</fileMode>
         </fileSet>
     </fileSets>
@@ -48,8 +70,8 @@
             <destName>conf/iotdb-system.properties</destName>
         </file>
         <file>
-            
<source>${project.basedir}/../node-commons/src/assembly/resources/sbin/iotdb-common.sh</source>
-            <destName>sbin/iotdb-common.sh</destName>
+            
<source>${project.basedir}/../../scripts/conf/iotdb-common.sh</source>
+            <destName>conf/iotdb-common.sh</destName>
         </file>
     </files>
 </assembly>
diff --git a/iotdb-core/datanode/src/assembly/server.xml 
b/iotdb-core/datanode/src/assembly/server.xml
index fc3b1ccf2a1..0822b9ae568 100644
--- a/iotdb-core/datanode/src/assembly/server.xml
+++ b/iotdb-core/datanode/src/assembly/server.xml
@@ -36,6 +36,34 @@
             <directory>src/assembly/resources</directory>
             <outputDirectory>${file.separator}</outputDirectory>
         </fileSet>
+        <fileSet>
+            <directory>${project.basedir}/../../scripts/conf</directory>
+            <outputDirectory>conf</outputDirectory>
+            <includes>
+                <include>datanode-env.*</include>
+                <include>**/datanode-env.*</include>
+            </includes>
+            <fileMode>0755</fileMode>
+        </fileSet>
+        <fileSet>
+            <directory>${project.basedir}/../../scripts/sbin</directory>
+            <outputDirectory>sbin</outputDirectory>
+            <includes>
+                <include>*datanode.*</include>
+                <include>**/*datanode.*</include>
+            </includes>
+            <fileMode>0755</fileMode>
+        </fileSet>
+        <fileSet>
+            <directory>${project.basedir}/../../scripts/tools</directory>
+            <outputDirectory>tools</outputDirectory>
+            <excludes>
+                <exclude>**/*confignode.*</exclude>
+                <exclude>**/*all.*</exclude>
+                <exclude>**/*ainode.*</exclude>
+            </excludes>
+            <fileMode>0755</fileMode>
+        </fileSet>
     </fileSets>
     <files>
         <file>
@@ -44,20 +72,8 @@
         </file>
         <!-- copy iotdb-common.sh to different script folders-->
         <file>
-            
<source>${project.basedir}/../node-commons/src/assembly/resources/sbin/iotdb-common.sh</source>
-            <destName>sbin/iotdb-common.sh</destName>
-        </file>
-        <file>
-            
<source>${project.basedir}/../node-commons/src/assembly/resources/sbin/iotdb-common.sh</source>
-            <destName>tools/iotdb-common.sh</destName>
-        </file>
-        <file>
-            
<source>${project.basedir}/../node-commons/src/assembly/resources/sbin/iotdb-common.sh</source>
-            <destName>tools/tsfileToolSet/iotdb-common.sh</destName>
-        </file>
-        <file>
-            
<source>${project.basedir}/../node-commons/src/assembly/resources/sbin/iotdb-common.sh</source>
-            <destName>tools/schema/iotdb-common.sh</destName>
+            
<source>${project.basedir}/../../scripts/conf/iotdb-common.sh</source>
+            <destName>conf/iotdb-common.sh</destName>
         </file>
     </files>
 </assembly>
diff --git a/iotdb-core/ainode/resources/conf/ainode-env.sh 
b/scripts/conf/ainode-env.sh
similarity index 100%
rename from iotdb-core/ainode/resources/conf/ainode-env.sh
rename to scripts/conf/ainode-env.sh
diff --git 
a/iotdb-core/confignode/src/assembly/resources/conf/confignode-env.sh 
b/scripts/conf/confignode-env.sh
similarity index 100%
rename from iotdb-core/confignode/src/assembly/resources/conf/confignode-env.sh
rename to scripts/conf/confignode-env.sh
diff --git a/iotdb-core/datanode/src/assembly/resources/conf/datanode-env.sh 
b/scripts/conf/datanode-env.sh
similarity index 100%
rename from iotdb-core/datanode/src/assembly/resources/conf/datanode-env.sh
rename to scripts/conf/datanode-env.sh
diff --git 
a/iotdb-core/node-commons/src/assembly/resources/sbin/iotdb-common.sh 
b/scripts/conf/iotdb-common.sh
similarity index 100%
rename from iotdb-core/node-commons/src/assembly/resources/sbin/iotdb-common.sh
rename to scripts/conf/iotdb-common.sh
diff --git a/iotdb-core/ainode/resources/conf/ainode-env.bat 
b/scripts/conf/windows/ainode-env.bat
similarity index 92%
rename from iotdb-core/ainode/resources/conf/ainode-env.bat
rename to scripts/conf/windows/ainode-env.bat
index fa304528a5c..2c01d411a2c 100644
--- a/iotdb-core/ainode/resources/conf/ainode-env.bat
+++ b/scripts/conf/windows/ainode-env.bat
@@ -28,7 +28,8 @@ set ain_force_reinstall=0
 @REM don't install dependencies online
 set ain_install_offline=0
 
-set ENV_SCRIPT_DIR=%~dp0
+pushd %~dp0..\..
+if NOT DEFINED IOTDB_AINODE_HOME set IOTDB_AINODE_HOME=%cd%
 
 :initial
 if "%1"=="" goto done
@@ -62,17 +63,17 @@ if "%i%"=="" (
 
 echo Script got inputs: ain_interpreter_dir: %ain_interpreter_dir% , 
ain_force_reinstall: %ain_force_reinstall%
 if "%ain_interpreter_dir%"=="" (
-    %ENV_SCRIPT_DIR%//..//venv//Scripts//python.exe -c "import sys; 
print(sys.executable)" && (
+    %IOTDB_AINODE_HOME%//venv//Scripts//python.exe -c "import sys; 
print(sys.executable)" && (
         echo Activate default venv environment
     ) || (
         echo Creating default venv environment
-        python -m venv "%ENV_SCRIPT_DIR%//..//venv"
+        python -m venv "%IOTDB_AINODE_HOME%//venv"
     )
-    set ain_interpreter_dir="%ENV_SCRIPT_DIR%//..//venv//Scripts//python.exe"
+    set ain_interpreter_dir="%IOTDB_AINODE_HOME%//venv//Scripts//python.exe"
 )
 
 @REM Switch the working directory to the directory one level above the script
-cd %ENV_SCRIPT_DIR%/../
+cd %IOTDB_AINODE_HOME%
 
 echo Confirming ainode
 %ain_interpreter_dir% -m pip config set global.disable-pip-version-check true
diff --git 
a/iotdb-core/confignode/src/assembly/resources/conf/confignode-env.bat 
b/scripts/conf/windows/confignode-env.bat
similarity index 99%
rename from iotdb-core/confignode/src/assembly/resources/conf/confignode-env.bat
rename to scripts/conf/windows/confignode-env.bat
index 819ea62f0ea..01210b8ef6a 100644
--- a/iotdb-core/confignode/src/assembly/resources/conf/confignode-env.bat
+++ b/scripts/conf/windows/confignode-env.bat
@@ -153,4 +153,4 @@ IF "%JAVA_VERSION%" == "8" (
 )
 
 echo ConfigNode on heap memory size = %ON_HEAP_MEMORY%B, off heap memory size 
= %OFF_HEAP_MEMORY%B
-echo If you want to change this configuration, please check 
conf/confignode-env.bat.
+echo If you want to change this configuration, please check 
conf/windows/confignode-env.bat.
diff --git a/iotdb-core/datanode/src/assembly/resources/conf/datanode-env.bat 
b/scripts/conf/windows/datanode-env.bat
similarity index 99%
rename from iotdb-core/datanode/src/assembly/resources/conf/datanode-env.bat
rename to scripts/conf/windows/datanode-env.bat
index df8e8ac6334..25fe1a13647 100644
--- a/iotdb-core/datanode/src/assembly/resources/conf/datanode-env.bat
+++ b/scripts/conf/windows/datanode-env.bat
@@ -184,4 +184,4 @@ IF "%JAVA_VERSION%" == "8" (
 )
 
 echo DataNode on heap memory size = %ON_HEAP_MEMORY%B, off heap memory size = 
%OFF_HEAP_MEMORY%B
-echo If you want to change this configuration, please check 
conf\datanode-env.bat.
+echo If you want to change this configuration, please check 
conf/windows/datanode-env.bat.
diff --git a/iotdb-core/node-commons/src/assembly/resources/sbin/start-all.sh 
b/scripts/sbin/cluster/start-all.sh
similarity index 98%
rename from iotdb-core/node-commons/src/assembly/resources/sbin/start-all.sh
rename to scripts/sbin/cluster/start-all.sh
index d9204cdcd38..2571688e376 100644
--- a/iotdb-core/node-commons/src/assembly/resources/sbin/start-all.sh
+++ b/scripts/sbin/cluster/start-all.sh
@@ -19,7 +19,7 @@
 #
 
 if [ -z "${IOTDB_HOME}" ]; then
-    export IOTDB_HOME="`dirname "$0"`/.."
+    export IOTDB_HOME="`dirname "$0"`/../.."
 fi
 IOTDB_CLUSTER_PATH="${IOTDB_HOME}"/conf/iotdb-cluster.properties
 if [ ! -f ${IOTDB_CLUSTER_PATH} ]; then
diff --git a/iotdb-core/node-commons/src/assembly/resources/sbin/stop-all.sh 
b/scripts/sbin/cluster/stop-all.sh
similarity index 97%
rename from iotdb-core/node-commons/src/assembly/resources/sbin/stop-all.sh
rename to scripts/sbin/cluster/stop-all.sh
index b28fba9bd75..1adfe056c32 100644
--- a/iotdb-core/node-commons/src/assembly/resources/sbin/stop-all.sh
+++ b/scripts/sbin/cluster/stop-all.sh
@@ -19,7 +19,7 @@
 #
 
 if [ -z "${IOTDB_HOME}" ]; then
-    export IOTDB_HOME="`dirname "$0"`/.."
+    export IOTDB_HOME="`dirname "$0"`/../.."
 fi
 IOTDB_CLUSTER_PATH="${IOTDB_HOME}"/conf/iotdb-cluster.properties
 if [ ! -f ${IOTDB_CLUSTER_PATH} ]; then
diff --git a/iotdb-core/ainode/resources/sbin/start-ainode.sh 
b/scripts/sbin/start-ainode.sh
similarity index 84%
rename from iotdb-core/ainode/resources/sbin/start-ainode.sh
rename to scripts/sbin/start-ainode.sh
index dd1afbd8bda..4ab202a209e 100644
--- a/iotdb-core/ainode/resources/sbin/start-ainode.sh
+++ b/scripts/sbin/start-ainode.sh
@@ -22,11 +22,12 @@ echo ---------------------------
 echo Starting IoTDB AINode
 echo ---------------------------
 
-SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
-echo "SCRIPT_DIR: $SCRIPT_DIR"
-chmod u+x $(dirname "$0")/../conf/ainode-env.sh
-ain_interpreter_dir=$(sed -n 's/^ain_interpreter_dir=\(.*\)$/\1/p' $(dirname 
"$0")/../conf/ainode-env.sh)
-bash $(dirname "$0")/../conf/ainode-env.sh $*
+IOTDB_AINODE_HOME="$(cd "`dirname "$0"`"/..; pwd)"
+
+echo "IOTDB_AINODE_HOME: $IOTDB_AINODE_HOME"
+chmod u+x $IOTDB_AINODE_HOME/conf/ainode-env.sh
+ain_interpreter_dir=$(sed -n 's/^ain_interpreter_dir=\(.*\)$/\1/p' 
$IOTDB_AINODE_HOME/conf/ainode-env.sh)
+bash $IOTDB_AINODE_HOME/conf/ainode-env.sh $*
 if [ $? -eq 1 ]; then
   echo "Environment check failed. Exiting..."
   exit 1
@@ -52,7 +53,7 @@ done
 if [ -z "$p_ain_interpreter_dir" ]; then
   # If ain_interpreter_dir in ../conf/ainode-env.sh is empty, set default 
value to ../venv/bin/python3
   if [ -z "$ain_interpreter_dir" ]; then
-    ain_interpreter_dir="$SCRIPT_DIR/../venv/bin/python3"
+    ain_interpreter_dir="$IOTDB_AINODE_HOME/venv/bin/python3"
   fi
 else
   # If ain_interpreter_dir in parameters is not empty, set ain_interpreter_dir 
to the value in parameters
@@ -61,13 +62,13 @@ fi
 
 # check if ain_interpreter_dir is an absolute path
 if [[ "$ain_interpreter_dir" != /* ]]; then
-  ain_interpreter_dir="$SCRIPT_DIR/$ain_interpreter_dir"
+  ain_interpreter_dir="$IOTDB_AINODE_HOME/$ain_interpreter_dir"
 fi
 
 echo Script got parameter: ain_interpreter_dir: $ain_interpreter_dir
 
 # Change the working directory to the parent directory
-cd "$SCRIPT_DIR/.."
+cd "$IOTDB_AINODE_HOME"
 
 ain_ainode_dir=$(dirname "$ain_interpreter_dir")/ainode
 
diff --git a/iotdb-client/cli/src/assembly/resources/sbin/start-cli.sh 
b/scripts/sbin/start-cli.sh
similarity index 100%
rename from iotdb-client/cli/src/assembly/resources/sbin/start-cli.sh
rename to scripts/sbin/start-cli.sh
diff --git 
a/iotdb-core/confignode/src/assembly/resources/sbin/start-confignode.sh 
b/scripts/sbin/start-confignode.sh
similarity index 99%
rename from 
iotdb-core/confignode/src/assembly/resources/sbin/start-confignode.sh
rename to scripts/sbin/start-confignode.sh
index 130810578ec..65e1b7bd897 100644
--- a/iotdb-core/confignode/src/assembly/resources/sbin/start-confignode.sh
+++ b/scripts/sbin/start-confignode.sh
@@ -24,7 +24,7 @@ echo ----------------------------
 
 
 
-source "$(dirname "$0")/iotdb-common.sh"
+source "$(dirname "$0")/../conf/iotdb-common.sh"
 
 # iotdb server runs on foreground by default
 foreground="yes"
diff --git a/iotdb-core/datanode/src/assembly/resources/sbin/start-datanode.sh 
b/scripts/sbin/start-datanode.sh
similarity index 99%
rename from iotdb-core/datanode/src/assembly/resources/sbin/start-datanode.sh
rename to scripts/sbin/start-datanode.sh
index 351f6de45ff..65ff2ac32e0 100755
--- a/iotdb-core/datanode/src/assembly/resources/sbin/start-datanode.sh
+++ b/scripts/sbin/start-datanode.sh
@@ -19,7 +19,7 @@
 #
 
 
-source "$(dirname "$0")/iotdb-common.sh"
+source "$(dirname "$0")/../conf/iotdb-common.sh"
 
 # iotdb server runs on foreground by default
 foreground="yes"
diff --git 
a/iotdb-core/node-commons/src/assembly/resources/sbin/start-standalone.sh 
b/scripts/sbin/start-standalone.sh
similarity index 100%
rename from 
iotdb-core/node-commons/src/assembly/resources/sbin/start-standalone.sh
rename to scripts/sbin/start-standalone.sh
diff --git a/iotdb-core/ainode/resources/sbin/stop-ainode.sh 
b/scripts/sbin/stop-ainode.sh
similarity index 100%
rename from iotdb-core/ainode/resources/sbin/stop-ainode.sh
rename to scripts/sbin/stop-ainode.sh
diff --git 
a/iotdb-core/confignode/src/assembly/resources/sbin/stop-confignode.sh 
b/scripts/sbin/stop-confignode.sh
similarity index 98%
rename from iotdb-core/confignode/src/assembly/resources/sbin/stop-confignode.sh
rename to scripts/sbin/stop-confignode.sh
index dfc214865a7..ad68688d263 100644
--- a/iotdb-core/confignode/src/assembly/resources/sbin/stop-confignode.sh
+++ b/scripts/sbin/stop-confignode.sh
@@ -18,7 +18,7 @@
 # under the License.
 #
 
-source "$(dirname "$0")/iotdb-common.sh"
+source "$(dirname "$0")/../conf/iotdb-common.sh"
 CONFIGNODE_CONF="$(dirname "$0")/../conf"
 
 if [ -f "${CONFIGNODE_CONF}/iotdb-system.properties" ]; then
diff --git a/iotdb-core/datanode/src/assembly/resources/sbin/stop-datanode.sh 
b/scripts/sbin/stop-datanode.sh
similarity index 98%
rename from iotdb-core/datanode/src/assembly/resources/sbin/stop-datanode.sh
rename to scripts/sbin/stop-datanode.sh
index 1f6711cfa93..1b40ad97cbf 100644
--- a/iotdb-core/datanode/src/assembly/resources/sbin/stop-datanode.sh
+++ b/scripts/sbin/stop-datanode.sh
@@ -18,7 +18,7 @@
 # under the License.
 #
 
-source "$(dirname "$0")/iotdb-common.sh"
+source "$(dirname "$0")/../conf/iotdb-common.sh"
 DATANODE_CONF="`dirname "$0"`/../conf"
 
 if [ -f "${DATANODE_CONF}/iotdb-system.properties" ]; then
diff --git 
a/iotdb-core/node-commons/src/assembly/resources/sbin/stop-standalone.sh 
b/scripts/sbin/stop-standalone.sh
similarity index 100%
rename from 
iotdb-core/node-commons/src/assembly/resources/sbin/stop-standalone.sh
rename to scripts/sbin/stop-standalone.sh
diff --git a/iotdb-core/ainode/resources/sbin/start-ainode.bat 
b/scripts/sbin/windows/start-ainode.bat
similarity index 85%
rename from iotdb-core/ainode/resources/sbin/start-ainode.bat
rename to scripts/sbin/windows/start-ainode.bat
index e29109bbc4e..0a83865fd23 100644
--- a/iotdb-core/ainode/resources/sbin/start-ainode.bat
+++ b/scripts/sbin/windows/start-ainode.bat
@@ -23,14 +23,16 @@ echo ```````````````````````````
 echo Starting IoTDB AINode
 echo ```````````````````````````
 
-set START_SCRIPT_DIR=%~dp0
-call %START_SCRIPT_DIR%\\..\\conf\\ainode-env.bat %*
+pushd %~dp0..\..
+if NOT DEFINED IOTDB_AINODE_HOME set IOTDB_AINODE_HOME=%cd%
+
+call %IOTDB_AINODE_HOME%\\conf\\windows\\ainode-env.bat %*
 if %errorlevel% neq 0 (
     echo Environment check failed. Exiting...
     exit /b 1
 )
 
-for /f "tokens=2 delims==" %%a in ('findstr /i /c:"^ain_interpreter_dir" 
"%START_SCRIPT_DIR%\\..\\conf\\ainode-env.bat"') do (
+for /f "tokens=2 delims==" %%a in ('findstr /i /c:"^ain_interpreter_dir" 
"%IOTDB_AINODE_HOME%\\conf\\windows\\ainode-env.bat"') do (
     set _ain_interpreter_dir=%%a
     goto :done
 )
@@ -50,7 +52,7 @@ goto initial
 :done
 if "%i%"=="" (
     if "%_ain_interpreter_dir%"=="" (
-        set 
_ain_interpreter_dir=%START_SCRIPT_DIR%\\..\\venv\\Scripts\\python.exe
+        set _ain_interpreter_dir=%IOTDB_AINODE_HOME%\\venv\\Scripts\\python.exe
     )
 ) else (
     set _ain_interpreter_dir=%i%
@@ -58,7 +60,7 @@ if "%i%"=="" (
 
 echo Script got parameter: ain_interpreter_dir: %_ain_interpreter_dir%
 
-cd %START_SCRIPT_DIR%\\..
+cd %IOTDB_AINODE_HOME%
 
 for %%i in ("%_ain_interpreter_dir%") do set "parent=%%~dpi"
 
diff --git a/iotdb-client/cli/src/assembly/resources/sbin/start-cli.bat 
b/scripts/sbin/windows/start-cli-table.bat
similarity index 98%
copy from iotdb-client/cli/src/assembly/resources/sbin/start-cli.bat
copy to scripts/sbin/windows/start-cli-table.bat
index 44339ae4cc1..d22a45ef7c6 100644
--- a/iotdb-client/cli/src/assembly/resources/sbin/start-cli.bat
+++ b/scripts/sbin/windows/start-cli-table.bat
@@ -25,7 +25,7 @@ powershell -NoProfile -Command "$v=(Get-ItemProperty 
'HKLM:\SOFTWARE\Microsoft\W
 @REM DEFAULT_SQL_DIALECT is used to set the default SQL dialect for the CLI.
 @REM empty value means using "tree".
 @REM Optional values: "table" or "tree"
-set DEFAULT_SQL_DIALECT=tree
+set DEFAULT_SQL_DIALECT=table
 
 @REM You can put your env variable here
 @REM set JAVA_HOME=%JAVA_HOME%
@@ -53,7 +53,7 @@ set JAVA_VERSION=%MAJOR_VERSION%
 
 if "%OS%" == "Windows_NT" setlocal
 
-pushd %~dp0..
+pushd %~dp0..\..
 if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%CD%
 popd
 
diff --git a/iotdb-client/cli/src/assembly/resources/sbin/start-cli.bat 
b/scripts/sbin/windows/start-cli.bat
similarity index 99%
rename from iotdb-client/cli/src/assembly/resources/sbin/start-cli.bat
rename to scripts/sbin/windows/start-cli.bat
index 44339ae4cc1..236775f5716 100644
--- a/iotdb-client/cli/src/assembly/resources/sbin/start-cli.bat
+++ b/scripts/sbin/windows/start-cli.bat
@@ -53,7 +53,7 @@ set JAVA_VERSION=%MAJOR_VERSION%
 
 if "%OS%" == "Windows_NT" setlocal
 
-pushd %~dp0..
+pushd %~dp0..\..
 if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%CD%
 popd
 
diff --git 
a/iotdb-core/confignode/src/assembly/resources/sbin/start-confignode.bat 
b/scripts/sbin/windows/start-confignode.bat
similarity index 96%
rename from 
iotdb-core/confignode/src/assembly/resources/sbin/start-confignode.bat
rename to scripts/sbin/windows/start-confignode.bat
index 40c5869549e..2501a0645c2 100644
--- a/iotdb-core/confignode/src/assembly/resources/sbin/start-confignode.bat
+++ b/scripts/sbin/windows/start-confignode.bat
@@ -58,7 +58,7 @@ IF "%JAVA_VERSION%" == "7" (
 
 if "%OS%" == "Windows_NT" setlocal
 
-pushd %~dp0..
+pushd %~dp0..\..
 if NOT DEFINED CONFIGNODE_HOME set CONFIGNODE_HOME=%cd%
 popd
 
@@ -76,10 +76,10 @@ for %%i in (%*) do (
        )
 )
 
-IF EXIST "%CONFIGNODE_CONF%\confignode-env.bat" (
-    CALL "%CONFIGNODE_CONF%\confignode-env.bat" %1
+IF EXIST "%CONFIGNODE_CONF%\windows\confignode-env.bat" (
+    CALL "%CONFIGNODE_CONF%\windows\confignode-env.bat" %1
     ) ELSE (
-    echo "Can't find %CONFIGNODE_CONF%\confignode-env.bat"
+    echo "Can't find %CONFIGNODE_CONF%\windows\confignode-env.bat"
     )
 
 @REM CHECK THE PORT USAGES
diff --git a/iotdb-core/datanode/src/assembly/resources/sbin/start-datanode.bat 
b/scripts/sbin/windows/start-datanode.bat
similarity index 96%
rename from iotdb-core/datanode/src/assembly/resources/sbin/start-datanode.bat
rename to scripts/sbin/windows/start-datanode.bat
index c80aaf6f551..30a7aa50e83 100755
--- a/iotdb-core/datanode/src/assembly/resources/sbin/start-datanode.bat
+++ b/scripts/sbin/windows/start-datanode.bat
@@ -62,7 +62,7 @@ IF "%JAVA_VERSION%" == "7" (
 @REM SET DIR
 if "%OS%" == "Windows_NT" setlocal
 
-pushd %~dp0..
+pushd %~dp0..\..
 if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%cd%
 popd
 
@@ -86,17 +86,17 @@ for %%i in (%*) do (
        )
 )
 
-IF EXIST "%IOTDB_CONF%\datanode-env.bat" (
+IF EXIST "%IOTDB_CONF%\windows\datanode-env.bat" (
   IF  "%enable_printgc%" == "true" (
-    CALL "%IOTDB_CONF%\datanode-env.bat" printgc
+    CALL "%IOTDB_CONF%\windows\datanode-env.bat" printgc
   ) ELSE (
-    CALL "%IOTDB_CONF%\datanode-env.bat"
+    CALL "%IOTDB_CONF%\windows\datanode-env.bat"
   )
-) ELSE IF EXIST "%IOTDB_HOME%/conf/datanode-env.bat" (
+) ELSE IF EXIST "%IOTDB_HOME%/conf/windows/datanode-env.bat" (
   IF  "%enable_printgc%" == "true" (
-    CALL "%IOTDB_HOME%/conf/datanode-env.bat" printgc
+    CALL "%IOTDB_HOME%/conf/windows/datanode-env.bat" printgc
   ) ELSE (
-    CALL "%IOTDB_HOME%/conf/datanode-env.bat"
+    CALL "%IOTDB_HOME%/conf/windows/datanode-env.bat"
    )
 ) ELSE (
   echo "Can't find datanode-env.bat"
diff --git 
a/iotdb-core/node-commons/src/assembly/resources/sbin/start-standalone.bat 
b/scripts/sbin/windows/start-standalone.bat
similarity index 78%
rename from 
iotdb-core/node-commons/src/assembly/resources/sbin/start-standalone.bat
rename to scripts/sbin/windows/start-standalone.bat
index 5bddfe8d581..9020539b8b9 100644
--- a/iotdb-core/node-commons/src/assembly/resources/sbin/start-standalone.bat
+++ b/scripts/sbin/windows/start-standalone.bat
@@ -19,19 +19,19 @@
 
 @echo off
 
-pushd %~dp0..
+pushd %~dp0..\..
 if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%cd%
 popd
 
-IF EXIST "%IOTDB_HOME%\sbin\start-confignode.bat" (
-  SET CONFIGNODE_START_PATH="%IOTDB_HOME%\sbin\start-confignode.bat"
+IF EXIST "%IOTDB_HOME%\sbin\windows\start-confignode.bat" (
+  SET CONFIGNODE_START_PATH="%IOTDB_HOME%\sbin\windows\start-confignode.bat"
 ) ELSE (
   echo "Can't find start-confignode.bat."
   exit 0
 )
 
-IF EXIST "%IOTDB_HOME%\sbin\start-datanode.bat" (
-  SET DATANODE_START_PATH="%IOTDB_HOME%\sbin\start-datanode.bat"
+IF EXIST "%IOTDB_HOME%\sbin\windows\start-datanode.bat" (
+  SET DATANODE_START_PATH="%IOTDB_HOME%\sbin\windows\start-datanode.bat"
 ) ELSE (
   echo "Can't find start-datanode.bat."
   exit 0
@@ -44,5 +44,5 @@ start cmd /c %DATANODE_START_PATH%
 @REM SET LOG_SAFEPOINT_PATH=%IOTDB_HOME%\logs\log_datanode_safepoint.log
 @REM start cmd /c %DATANODE_START_PATH% > %LOG_SAFEPOINT_PATH%
 
-echo "Execute start-standalone.sh finished, you can see more details in the 
logs of confignode and datanode"
+echo "Execute start-standalone.bat finished, you can see more details in the 
logs of confignode and datanode"
 exit 0
diff --git a/iotdb-core/ainode/resources/sbin/stop-ainode.bat 
b/scripts/sbin/windows/stop-ainode.bat
similarity index 90%
rename from iotdb-core/ainode/resources/sbin/stop-ainode.bat
rename to scripts/sbin/windows/stop-ainode.bat
index a4f302b3f93..8bcc462b746 100644
--- a/iotdb-core/ainode/resources/sbin/stop-ainode.bat
+++ b/scripts/sbin/windows/stop-ainode.bat
@@ -19,8 +19,8 @@
 
 @echo off
 
-set current_dir=%~dp0
-set superior_dir=%current_dir%\..\
+pushd %~dp0..\..
+if NOT DEFINED IOTDB_AINODE_HOME set IOTDB_AINODE_HOME=%cd%
 
 :initial
 if "%1"=="" goto done
@@ -36,14 +36,14 @@ goto initial
 
 :done
 for /f  "eol=# tokens=2 delims==" %%i in ('findstr /i "^ain_inference_rpc_port"
-%superior_dir%\conf\iotdb-ainode.properties') do (
+%IOTDB_AINODE_HOME%\conf\iotdb-ainode.properties') do (
   set ain_inference_rpc_port=%%i
 )
 
 echo Check whether the rpc_port is used..., port is %ain_inference_rpc_port%
 
 for /f  "eol=# tokens=2 delims==" %%i in ('findstr /i 
"ain_inference_rpc_address"
-%superior_dir%\conf\iotdb-ainode.properties') do (
+%IOTDB_AINODE_HOME%\conf\iotdb-ainode.properties') do (
   set ain_inference_rpc_address=%%i
 )
 
diff --git 
a/iotdb-core/confignode/src/assembly/resources/sbin/stop-confignode.bat 
b/scripts/sbin/windows/stop-confignode.bat
similarity index 84%
rename from 
iotdb-core/confignode/src/assembly/resources/sbin/stop-confignode.bat
rename to scripts/sbin/windows/stop-confignode.bat
index 61abfe923b3..b6dbe328520 100644
--- a/iotdb-core/confignode/src/assembly/resources/sbin/stop-confignode.bat
+++ b/scripts/sbin/windows/stop-confignode.bat
@@ -19,14 +19,15 @@
 
 @echo off
 
-set current_dir=%~dp0
-set superior_dir=%current_dir%\..\
+pushd %~dp0..\..
+if NOT DEFINED CONFIGNODE_HOME set CONFIGNODE_HOME=%cd%
+popd
 
-IF EXIST "%superior_dir%\conf\iotdb-system.properties" (
-  set config_file="%superior_dir%\conf\iotdb-system.properties"
+IF EXIST "%CONFIGNODE_HOME%\conf\iotdb-system.properties" (
+  set config_file="%CONFIGNODE_HOME%\conf\iotdb-system.properties"
 ) ELSE (
-  IF EXIST "%superior_dir%\conf\iotdb-confignode.properties" (
-    set config_file="%superior_dir%\conf\iotdb-confignode.properties"
+  IF EXIST "%CONFIGNODE_HOME%\conf\iotdb-confignode.properties" (
+    set config_file="%CONFIGNODE_HOME%\conf\iotdb-confignode.properties"
   ) ELSE (
     echo "No configuration file found. Exiting."
     exit /b 1
diff --git a/iotdb-core/datanode/src/assembly/resources/sbin/stop-datanode.bat 
b/scripts/sbin/windows/stop-datanode.bat
similarity index 85%
rename from iotdb-core/datanode/src/assembly/resources/sbin/stop-datanode.bat
rename to scripts/sbin/windows/stop-datanode.bat
index 9910807018d..a9611fab86c 100644
--- a/iotdb-core/datanode/src/assembly/resources/sbin/stop-datanode.bat
+++ b/scripts/sbin/windows/stop-datanode.bat
@@ -19,14 +19,15 @@
 
 @echo off
 
-set current_dir=%~dp0
-set superior_dir=%current_dir%\..\
+pushd %~dp0..\..
+if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%cd%
+popd
 
-IF EXIST "%superior_dir%\conf\iotdb-system.properties" (
-  set config_file="%superior_dir%\conf\iotdb-system.properties"
+IF EXIST "%IOTDB_HOME%\conf\iotdb-system.properties" (
+  set config_file="%IOTDB_HOME%\conf\iotdb-system.properties"
 ) ELSE (
-  IF EXIST "%superior_dir%\conf\iotdb-datanode.properties" (
-    set config_file=%superior_dir%\conf\iotdb-datanode.properties
+  IF EXIST "%IOTDB_HOME%\conf\iotdb-datanode.properties" (
+    set config_file=%IOTDB_HOME%\conf\iotdb-datanode.properties
   ) ELSE (
     echo No configuration file found. Exiting.
     exit /b 1
diff --git 
a/iotdb-core/node-commons/src/assembly/resources/sbin/stop-standalone.bat 
b/scripts/sbin/windows/stop-standalone.bat
similarity index 80%
rename from 
iotdb-core/node-commons/src/assembly/resources/sbin/stop-standalone.bat
rename to scripts/sbin/windows/stop-standalone.bat
index 8c4de181bd0..316a5929a8a 100644
--- a/iotdb-core/node-commons/src/assembly/resources/sbin/stop-standalone.bat
+++ b/scripts/sbin/windows/stop-standalone.bat
@@ -19,19 +19,19 @@
 
 @echo off
 
-pushd %~dp0..
+pushd %~dp0..\..
 if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%cd%
 popd
 
-IF EXIST "%IOTDB_HOME%\sbin\stop-confignode.bat" (
-  SET CONFIGNODE_STOP_PATH="%IOTDB_HOME%\sbin\stop-confignode.bat"
+IF EXIST "%IOTDB_HOME%\sbin\windows\stop-confignode.bat" (
+  SET CONFIGNODE_STOP_PATH="%IOTDB_HOME%\sbin\windows\stop-confignode.bat"
 ) ELSE (
   echo "Can't find stop-confignode.bat."
   exit 0
 )
 
-IF EXIST "%IOTDB_HOME%\sbin\stop-datanode.bat" (
-  SET DATANODE_STOP_PATH="%IOTDB_HOME%\sbin\stop-datanode.bat"
+IF EXIST "%IOTDB_HOME%\sbin\windows\stop-datanode.bat" (
+  SET DATANODE_STOP_PATH="%IOTDB_HOME%\sbin\windows\stop-datanode.bat"
 ) ELSE (
   echo "Can't find stop-datanode.bat."
   exit 0
diff --git a/iotdb-client/cli/src/assembly/resources/tools/export-data.sh 
b/scripts/tools/export-data.sh
similarity index 100%
rename from iotdb-client/cli/src/assembly/resources/tools/export-data.sh
rename to scripts/tools/export-data.sh
diff --git a/iotdb-client/cli/src/assembly/resources/tools/import-data.sh 
b/scripts/tools/import-data.sh
similarity index 100%
rename from iotdb-client/cli/src/assembly/resources/tools/import-data.sh
rename to scripts/tools/import-data.sh
diff --git a/iotdb-client/cli/src/assembly/resources/tools/load-tsfile.sh 
b/scripts/tools/load-tsfile.sh
similarity index 97%
rename from iotdb-client/cli/src/assembly/resources/tools/load-tsfile.sh
rename to scripts/tools/load-tsfile.sh
index 820ca5fcc2d..8424fc2855c 100755
--- a/iotdb-client/cli/src/assembly/resources/tools/load-tsfile.sh
+++ b/scripts/tools/load-tsfile.sh
@@ -22,7 +22,7 @@ echo ---------------------
 echo Start Loading TsFile
 echo ---------------------
 
-source "$(dirname "$0")/../sbin/iotdb-common.sh"
+source "$(dirname "$0")/../conf/iotdb-common.sh"
 #get_iotdb_include and checkAllVariables is in iotdb-common.sh
 VARS=$(get_iotdb_include "$*")
 checkAllVariables
diff --git a/iotdb-client/cli/src/assembly/resources/tools/backup.sh 
b/scripts/tools/ops/backup.sh
similarity index 98%
rename from iotdb-client/cli/src/assembly/resources/tools/backup.sh
rename to scripts/tools/ops/backup.sh
index d65392cdcca..8bd3643d353 100644
--- a/iotdb-client/cli/src/assembly/resources/tools/backup.sh
+++ b/scripts/tools/ops/backup.sh
@@ -31,7 +31,7 @@ elif [ -r "$IOTDB_INCLUDE" ]; then
 fi
 
 if [ -z "${IOTDB_HOME}" ]; then
-    export IOTDB_HOME="$(cd "`dirname "$0"`"/..; pwd)"
+    export IOTDB_HOME="$(cd "`dirname "$0"`"/../..; pwd)"
 fi
 
 if [ -n "$JAVA_HOME" ]; then
diff --git a/iotdb-client/cli/src/assembly/resources/tools/collect-info.sh 
b/scripts/tools/ops/collect-info.sh
similarity index 98%
rename from iotdb-client/cli/src/assembly/resources/tools/collect-info.sh
rename to scripts/tools/ops/collect-info.sh
index 1926309374a..23be9038542 100644
--- a/iotdb-client/cli/src/assembly/resources/tools/collect-info.sh
+++ b/scripts/tools/ops/collect-info.sh
@@ -24,7 +24,7 @@ echo Start collecting info
 echo ---------------------
 
 if [ -z "${IOTDB_HOME}" ]; then
-    export IOTDB_HOME="`dirname "$0"`/.."
+    export IOTDB_HOME="`dirname "$0"`/../.."
   fi
 
 COLLECTION_FILE="collection.txt"
diff --git 
a/iotdb-core/confignode/src/assembly/resources/sbin/daemon-confignode.sh 
b/scripts/tools/ops/daemon-confignode.sh
similarity index 97%
rename from 
iotdb-core/confignode/src/assembly/resources/sbin/daemon-confignode.sh
rename to scripts/tools/ops/daemon-confignode.sh
index 37c2328c481..8e1d0d9cd94 100644
--- a/iotdb-core/confignode/src/assembly/resources/sbin/daemon-confignode.sh
+++ b/scripts/tools/ops/daemon-confignode.sh
@@ -17,7 +17,7 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-IOTDB_SBIN_HOME="$(dirname "$(readlink -f "$0")")"
+IOTDB_SBIN_HOME="$(cd "`dirname "$0"`"/../../sbin; pwd)"
 SYSTEMD_DIR="/etc/systemd/system"
 
 if [ ! -d "$SYSTEMD_DIR" ]; then
diff --git a/iotdb-core/datanode/src/assembly/resources/sbin/daemon-datanode.sh 
b/scripts/tools/ops/daemon-datanode.sh
similarity index 97%
rename from iotdb-core/datanode/src/assembly/resources/sbin/daemon-datanode.sh
rename to scripts/tools/ops/daemon-datanode.sh
index 0452bfdc8d1..10dc5b4ef09 100644
--- a/iotdb-core/datanode/src/assembly/resources/sbin/daemon-datanode.sh
+++ b/scripts/tools/ops/daemon-datanode.sh
@@ -17,7 +17,7 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-IOTDB_SBIN_HOME="$(dirname "$(readlink -f "$0")")"
+IOTDB_SBIN_HOME="$(cd "`dirname "$0"`"/../../sbin; pwd)"
 SYSTEMD_DIR="/etc/systemd/system"
 
 if [ ! -d "$SYSTEMD_DIR" ]; then
diff --git a/iotdb-core/node-commons/src/assembly/resources/sbin/destroy-all.sh 
b/scripts/tools/ops/destroy-all.sh
similarity index 82%
rename from iotdb-core/node-commons/src/assembly/resources/sbin/destroy-all.sh
rename to scripts/tools/ops/destroy-all.sh
index 289a5c6c8f9..f1747211c01 100644
--- a/iotdb-core/node-commons/src/assembly/resources/sbin/destroy-all.sh
+++ b/scripts/tools/ops/destroy-all.sh
@@ -24,13 +24,13 @@ if [[ "$CLEAN_SERVICE" != "y" && "$CLEAN_SERVICE" != "Y" 
]]; then
   exit 0
 fi
 
-export IOTDB_HOME="`dirname "$0"`/.."
+export IOTDB_HOME="`dirname "$0"`/../.."
 IOTDB_CLUSTER_PATH="${IOTDB_HOME}"/conf/iotdb-cluster.properties
 if [ ! -f ${IOTDB_CLUSTER_PATH} ]; then
   exec ${IOTDB_HOME}/sbin/stop-standalone.sh -f >/dev/null 2>&1 &
   exec rm -rf ${IOTDB_HOME}/data/
-  exec ${IOTDB_HOME}/sbin/destroy-datanode.sh -f >/dev/null 2>&1 &
-  exec ${IOTDB_HOME}/sbin/destroy-confignode.sh -f >/dev/null 2>&1 &
+  exec ${IOTDB_HOME}/tools/ops/destroy-datanode.sh -f >/dev/null 2>&1 &
+  exec ${IOTDB_HOME}/tools/ops/destroy-confignode.sh -f >/dev/null 2>&1 &
   exit 0
 else
   confignodeStr=$(sed '/^confignode_address_list=/!d;s/.*=//' 
"${IOTDB_CLUSTER_PATH}")
@@ -48,8 +48,8 @@ function validateParam() {
     echo "The iotdb-cluster.properties file is incomplete, the current 1C1D 
will be cleaned ... "
     exec ${IOTDB_HOME}/sbin/stop-standalone.sh -f >/dev/null 2>&1 &
     exec rm -rf ${IOTDB_HOME}/data/
-    exec ${IOTDB_HOME}/sbin/destroy-datanode.sh -f >/dev/null 2>&1 &
-    exec ${IOTDB_HOME}/sbin/destroy-confignode.sh -f >/dev/null 2>&1 &
+    exec ${IOTDB_HOME}/tools/ops/destroy-datanode.sh -f >/dev/null 2>&1 &
+    exec ${IOTDB_HOME}/tools/ops/destroy-confignode.sh -f >/dev/null 2>&1 &
     exit
   fi
 }
@@ -78,14 +78,14 @@ for datanodeIP in ${unique_array[@]};do
     if [[ "$hasConfigNode" == "true" ]]; then
       echo "The system starts to clean data of DataNodes and ConfigNode of 
$datanodeIP"
       ssh $IOTDB_SSH_OPTS -p $serverPort ${account}@$datanodeIP "
-        nohup bash $datanodePath/sbin/destroy-datanode.sh -f >/dev/null 2>&1 &
+        nohup bash $datanodePath/tools/ops/destroy-datanode.sh -f >/dev/null 
2>&1 &
         sleep 3
-        nohup bash $confignodePath/sbin/destroy-confignode.sh -f >/dev/null 
2>&1 &
+        nohup bash $confignodePath/tools/ops/destroy-confignode.sh -f 
>/dev/null 2>&1 &
         "
     else
       echo "The system starts to clean data of DataNodes of $datanodeIP"
       ssh $IOTDB_SSH_OPTS -p $serverPort ${account}@$datanodeIP "
-          nohup bash $datanodePath/sbin/destroy-datanode.sh -f >/dev/null 2>&1 
& >/dev/null 2>&1 &
+          nohup bash $datanodePath/tools/ops/destroy-datanode.sh -f >/dev/null 
2>&1 & >/dev/null 2>&1 &
         "
     fi
 done
@@ -93,7 +93,7 @@ done
 for confignodeIP in ${confignodeIps[@]};do
   echo "The system starts to clear data of ConfigNodes of $confignodeIP"
   ssh $IOTDB_SSH_OPTS -p $serverPort ${account}@$confignodeIP "
-      nohup bash $confignodePath/sbin/destroy-confignode.sh -f >/dev/null 2>&1 
&
+      nohup bash $confignodePath/tools/ops/destroy-confignode.sh -f >/dev/null 
2>&1 &
   "
 done
 
diff --git 
a/iotdb-core/node-commons/src/assembly/resources/sbin/destroy-confignode.sh 
b/scripts/tools/ops/destroy-confignode.sh
similarity index 95%
rename from 
iotdb-core/node-commons/src/assembly/resources/sbin/destroy-confignode.sh
rename to scripts/tools/ops/destroy-confignode.sh
index fee89699362..3f81d94ef35 100644
--- a/iotdb-core/node-commons/src/assembly/resources/sbin/destroy-confignode.sh
+++ b/scripts/tools/ops/destroy-confignode.sh
@@ -19,7 +19,7 @@
 #
 
 if [ -z "${IOTDB_HOME}" ]; then
-  export IOTDB_HOME="$(cd "`dirname "$0"`"/..; pwd)"
+  export IOTDB_HOME="$(cd "`dirname "$0"`"/../..; pwd)"
 fi
 
 reCheck=$1
diff --git 
a/iotdb-core/node-commons/src/assembly/resources/sbin/destroy-datanode.sh 
b/scripts/tools/ops/destroy-datanode.sh
similarity index 97%
rename from 
iotdb-core/node-commons/src/assembly/resources/sbin/destroy-datanode.sh
rename to scripts/tools/ops/destroy-datanode.sh
index 1e8c74d62d7..f26004073a8 100644
--- a/iotdb-core/node-commons/src/assembly/resources/sbin/destroy-datanode.sh
+++ b/scripts/tools/ops/destroy-datanode.sh
@@ -27,7 +27,7 @@ if [[ "$reCheck" != "-f" ]]; then
   fi
 fi
 if [ -z "${IOTDB_HOME}" ]; then
-  export IOTDB_HOME="$(cd "`dirname "$0"`"/..; pwd)"
+  export IOTDB_HOME="$(cd "`dirname "$0"`"/../..; pwd)"
 fi
 nohup bash ${IOTDB_HOME}/sbin/stop-datanode.sh -f >/dev/null 2>&1 &
 
diff --git 
a/iotdb-core/node-commons/src/assembly/resources/sbin/health_check.sh 
b/scripts/tools/ops/health_check.sh
similarity index 99%
rename from iotdb-core/node-commons/src/assembly/resources/sbin/health_check.sh
rename to scripts/tools/ops/health_check.sh
index 9cb08bb5e33..346d1b9972b 100644
--- a/iotdb-core/node-commons/src/assembly/resources/sbin/health_check.sh
+++ b/scripts/tools/ops/health_check.sh
@@ -23,7 +23,7 @@ DATANODE="iotdb-datanode"
 CONFIGNODE="iotdb-confignode"
 
 if [ -z "${IOTDB_HOME}" ]; then
-    export IOTDB_HOME="`dirname "$0"`/.."
+    export IOTDB_HOME="`dirname "$0"`/../.."
 fi
 ulimit_value=""
 
@@ -31,7 +31,7 @@ system_settings_pre_check(){
   ulimit_value=$(ulimit -n)
 }
 
-source "${IOTDB_HOME}/sbin/iotdb-common.sh"
+source "${IOTDB_HOME}/conf/iotdb-common.sh"
 
 HELP="Usage: $0 [-ips <ip1> <port1> <port2>,<ip2> <port3> <port4>] [-o 
<all/local/remote>]"
 
diff --git a/iotdb-core/ainode/resources/sbin/remove-ainode.sh 
b/scripts/tools/ops/remove-ainode.sh
similarity index 84%
rename from iotdb-core/ainode/resources/sbin/remove-ainode.sh
rename to scripts/tools/ops/remove-ainode.sh
index 2a27661460d..316ccc1342d 100755
--- a/iotdb-core/ainode/resources/sbin/remove-ainode.sh
+++ b/scripts/tools/ops/remove-ainode.sh
@@ -35,12 +35,13 @@ echo ---------------------------
 echo Removing IoTDB AINode
 echo ---------------------------
 
-SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
-echo "SCRIPT_DIR: $SCRIPT_DIR"
-chmod u+x $(dirname "$0")/../conf/ainode-env.sh
-ain_interpreter_dir=$(sed -n 's/^ain_interpreter_dir=\(.*\)$/\1/p' $(dirname 
"$0")/../conf/ainode-env.sh)
-ain_system_dir=$(sed -n 's/^ain_system_dir=\(.*\)$/\1/p' $(dirname 
"$0")/../conf/iotdb-ainode.properties)
-bash $(dirname "$0")/../conf/ainode-env.sh $*
+IOTDB_AINODE_HOME="$(cd "`dirname "$0"`"/../..; pwd)"
+
+echo "IOTDB_AINODE_HOME: $IOTDB_AINODE_HOME"
+chmod u+x $IOTDB_AINODE_HOME/conf/ainode-env.sh
+ain_interpreter_dir=$(sed -n 's/^ain_interpreter_dir=\(.*\)$/\1/p' 
$IOTDB_AINODE_HOME/conf/ainode-env.sh)
+ain_system_dir=$(sed -n 's/^ain_system_dir=\(.*\)$/\1/p' 
$IOTDB_AINODE_HOME/conf/iotdb-ainode.properties)
+bash $IOTDB_AINODE_HOME/conf/ainode-env.sh $*
 if [ $? -eq 1 ]; then
     echo "Environment check failed. Exiting..."
     exit 1
@@ -67,7 +68,7 @@ done
 if [ -z "$p_ain_interpreter_dir" ]; then
   # If ain_interpreter_dir in ../conf/ainode-env.sh is empty, set default 
value to ../venv/bin/python3
   if [ -z "$ain_interpreter_dir" ]; then
-    ain_interpreter_dir="$SCRIPT_DIR/../venv/bin/python3"
+    ain_interpreter_dir="$IOTDB_AINODE_HOME/venv/bin/python3"
   fi
 else
   # If ain_interpreter_dir in parameters is not empty, set ain_interpreter_dir 
to the value in parameters
@@ -77,18 +78,18 @@ fi
 # If ain_system_dir is empty, set default value to ../data/ainode/system
 if [ -z "$ain_system_dir" ]
 then
-  ain_system_dir="$SCRIPT_DIR/../data/ainode/system"
+  ain_system_dir="$IOTDB_AINODE_HOME/data/ainode/system"
 fi
 
 echo "Script got parameters: ain_interpreter_dir: $ain_interpreter_dir, 
ain_system_dir: $ain_system_dir"
 
 # check if ain_interpreter_dir is an absolute path
 if [[ "$ain_interpreter_dir" != /* ]]; then
-    ain_interpreter_dir="$SCRIPT_DIR/$ain_interpreter_dir"
+    ain_interpreter_dir="$IOTDB_AINODE_HOME/$ain_interpreter_dir"
 fi
 
 # Change the working directory to the parent directory
-cd "$SCRIPT_DIR/.."
+cd "$IOTDB_AINODE_HOME"
 ain_ainode_dir=$(dirname "$ain_interpreter_dir")/ainode
 
 
@@ -104,7 +105,7 @@ if [ $? -eq 1 ]; then
     exit 1
 fi
 
-bash $SCRIPT_DIR/stop-ainode.sh $*
+bash $IOTDB_AINODE_HOME/sbin/stop-ainode.sh $*
 
 # Remove system directory
 rm -rf $ain_system_dir
\ No newline at end of file
diff --git a/iotdb-client/cli/src/assembly/resources/tools/export-schema.sh 
b/scripts/tools/schema/export-schema.sh
similarity index 96%
rename from iotdb-client/cli/src/assembly/resources/tools/export-schema.sh
rename to scripts/tools/schema/export-schema.sh
index e4d18590799..8ad2271b795 100644
--- a/iotdb-client/cli/src/assembly/resources/tools/export-schema.sh
+++ b/scripts/tools/schema/export-schema.sh
@@ -30,7 +30,7 @@ elif [ -r "$IOTDB_INCLUDE" ]; then
 fi
 
 if [ -z "${IOTDB_HOME}" ]; then
-    export IOTDB_HOME="$(cd "`dirname "$0"`"/..; pwd)"
+    export IOTDB_HOME="$(cd "`dirname "$0"`"/../..; pwd)"
 fi
 
 if [ -n "$JAVA_HOME" ]; then
diff --git a/iotdb-client/cli/src/assembly/resources/tools/import-schema.sh 
b/scripts/tools/schema/import-schema.sh
similarity index 96%
rename from iotdb-client/cli/src/assembly/resources/tools/import-schema.sh
rename to scripts/tools/schema/import-schema.sh
index 3954446beb2..a065d33e011 100644
--- a/iotdb-client/cli/src/assembly/resources/tools/import-schema.sh
+++ b/scripts/tools/schema/import-schema.sh
@@ -30,7 +30,7 @@ elif [ -r "$IOTDB_INCLUDE" ]; then
 fi
 
 if [ -z "${IOTDB_HOME}" ]; then
-    export IOTDB_HOME="$(cd "`dirname "$0"`"/..; pwd)"
+    export IOTDB_HOME="$(cd "`dirname "$0"`"/../..; pwd)"
 fi
 
 if [ -n "$JAVA_HOME" ]; then
diff --git 
a/iotdb-core/datanode/src/assembly/resources/tools/schema/print-pb-tree-file.sh 
b/scripts/tools/schema/print-pb-tree-file.sh
similarity index 96%
rename from 
iotdb-core/datanode/src/assembly/resources/tools/schema/print-pb-tree-file.sh
rename to scripts/tools/schema/print-pb-tree-file.sh
index c5d895b1747..e665f73b054 100644
--- 
a/iotdb-core/datanode/src/assembly/resources/tools/schema/print-pb-tree-file.sh
+++ b/scripts/tools/schema/print-pb-tree-file.sh
@@ -22,7 +22,7 @@ echo ---------------------
 echo Starting Sketching the IoTDB SchemaFile
 echo ---------------------
 
-source "$(dirname "$0")/../../sbin/iotdb-common.sh"
+source "$(dirname "$0")/../../conf/iotdb-common.sh"
 #get_iotdb_include and checkAllVariables is in iotdb-common.sh
 VARS=$(get_iotdb_include "$*")
 checkAllVariables
diff --git 
a/iotdb-core/datanode/src/assembly/resources/tools/schema/print-schema-log.sh 
b/scripts/tools/schema/print-schema-log.sh
similarity index 96%
rename from 
iotdb-core/datanode/src/assembly/resources/tools/schema/print-schema-log.sh
rename to scripts/tools/schema/print-schema-log.sh
index 6730b23131c..17ec6626e62 100644
--- 
a/iotdb-core/datanode/src/assembly/resources/tools/schema/print-schema-log.sh
+++ b/scripts/tools/schema/print-schema-log.sh
@@ -22,7 +22,7 @@ echo ---------------------
 echo Starting Parsing the IoTDB Mlog or Snapshot
 echo ---------------------
 
-source "$(dirname "$0")/../../sbin/iotdb-common.sh"
+source "$(dirname "$0")/../../conf/iotdb-common.sh"
 #get_iotdb_include and checkAllVariables is in iotdb-common.sh
 VARS=$(get_iotdb_include "$*")
 checkAllVariables
diff --git 
a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/check-overlap-sequence-files-and-repair.sh
 b/scripts/tools/tsfile/check-overlap-sequence-files-and-repair.sh
similarity index 96%
rename from 
iotdb-core/datanode/src/assembly/resources/tools/tsfile/check-overlap-sequence-files-and-repair.sh
rename to scripts/tools/tsfile/check-overlap-sequence-files-and-repair.sh
index 76557b2f068..398a593c3a0 100644
--- 
a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/check-overlap-sequence-files-and-repair.sh
+++ b/scripts/tools/tsfile/check-overlap-sequence-files-and-repair.sh
@@ -22,7 +22,7 @@ echo ---------------------
 echo Starting Validating the TsFile resources
 echo ---------------------
 
-source "$(dirname "$0")/../../sbin/iotdb-common.sh"
+source "$(dirname "$0")/../../conf/iotdb-common.sh"
 #get_iotdb_include and checkAllVariables is in iotdb-common.sh
 VARS=$(get_iotdb_include "$*")
 checkAllVariables
diff --git 
a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/overlap-statistic-tool.sh
 b/scripts/tools/tsfile/overlap-statistic-tool.sh
similarity index 96%
rename from 
iotdb-core/datanode/src/assembly/resources/tools/tsfile/overlap-statistic-tool.sh
rename to scripts/tools/tsfile/overlap-statistic-tool.sh
index cd34eab61a6..570e9d35d4e 100644
--- 
a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/overlap-statistic-tool.sh
+++ b/scripts/tools/tsfile/overlap-statistic-tool.sh
@@ -22,7 +22,7 @@ echo ---------------------
 echo Starting Validating the TsFile
 echo ---------------------
 
-source "$(dirname "$0")/../../sbin/iotdb-common.sh"
+source "$(dirname "$0")/../../conf/iotdb-common.sh"
 #get_iotdb_include and checkAllVariables is in iotdb-common.sh
 VARS=$(get_iotdb_include "$*")
 checkAllVariables
diff --git 
a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/print-iotdb-data-dir.sh
 b/scripts/tools/tsfile/print-iotdb-data-dir.sh
similarity index 96%
rename from 
iotdb-core/datanode/src/assembly/resources/tools/tsfile/print-iotdb-data-dir.sh
rename to scripts/tools/tsfile/print-iotdb-data-dir.sh
index 4571ac7dfa7..1891952ba7d 100644
--- 
a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/print-iotdb-data-dir.sh
+++ b/scripts/tools/tsfile/print-iotdb-data-dir.sh
@@ -22,7 +22,7 @@ echo ---------------------
 echo Starting Printing the IoTDB Data Directory Overview
 echo ---------------------
 
-source "$(dirname "$0")/../../sbin/iotdb-common.sh"
+source "$(dirname "$0")/../../conf/iotdb-common.sh"
 #get_iotdb_include and checkAllVariables is in iotdb-common.sh
 VARS=$(get_iotdb_include "$*")
 checkAllVariables
diff --git 
a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/print-tsfile-resource-files.sh
 b/scripts/tools/tsfile/print-tsfile-resource-files.sh
similarity index 96%
rename from 
iotdb-core/datanode/src/assembly/resources/tools/tsfile/print-tsfile-resource-files.sh
rename to scripts/tools/tsfile/print-tsfile-resource-files.sh
index 560deecc7f9..c247e80cf16 100755
--- 
a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/print-tsfile-resource-files.sh
+++ b/scripts/tools/tsfile/print-tsfile-resource-files.sh
@@ -23,7 +23,7 @@ echo ---------------------
 echo Starting Printing the TsFileResources
 echo ---------------------
 
-source "$(dirname "$0")/../../sbin/iotdb-common.sh"
+source "$(dirname "$0")/../../conf/iotdb-common.sh"
 #get_iotdb_include and checkAllVariables is in iotdb-common.sh
 VARS=$(get_iotdb_include "$*")
 checkAllVariables
diff --git 
a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/print-tsfile.sh 
b/scripts/tools/tsfile/print-tsfile.sh
similarity index 96%
rename from 
iotdb-core/datanode/src/assembly/resources/tools/tsfile/print-tsfile.sh
rename to scripts/tools/tsfile/print-tsfile.sh
index 8864ca877e7..e3ad4d5fe6c 100644
--- a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/print-tsfile.sh
+++ b/scripts/tools/tsfile/print-tsfile.sh
@@ -22,7 +22,7 @@ echo ---------------------
 echo Starting Printing the TsFile Sketch
 echo ---------------------
 
-source "$(dirname "$0")/../../sbin/iotdb-common.sh"
+source "$(dirname "$0")/../../conf/iotdb-common.sh"
 #get_iotdb_include and checkAllVariables is in iotdb-common.sh
 VARS=$(get_iotdb_include "$*")
 checkAllVariables
diff --git 
a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/settle-tsfile.sh 
b/scripts/tools/tsfile/settle-tsfile.sh
similarity index 100%
rename from 
iotdb-core/datanode/src/assembly/resources/tools/tsfile/settle-tsfile.sh
rename to scripts/tools/tsfile/settle-tsfile.sh
diff --git 
a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/split-tsfile-tool.sh 
b/scripts/tools/tsfile/split-tsfile-tool.sh
similarity index 96%
rename from 
iotdb-core/datanode/src/assembly/resources/tools/tsfile/split-tsfile-tool.sh
rename to scripts/tools/tsfile/split-tsfile-tool.sh
index 0265cb4ac28..f645f3c0fd6 100644
--- 
a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/split-tsfile-tool.sh
+++ b/scripts/tools/tsfile/split-tsfile-tool.sh
@@ -22,7 +22,7 @@ echo ---------------------
 echo Start Splitting TsFile
 echo ---------------------
 
-source "$(dirname "$0")/../../sbin/iotdb-common.sh"
+source "$(dirname "$0")/../../conf/iotdb-common.sh"
 #get_iotdb_include and checkAllVariables is in iotdb-common.sh
 VARS=$(get_iotdb_include "$*")
 checkAllVariables
diff --git 
a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/validate-tsfile.sh 
b/scripts/tools/tsfile/validate-tsfile.sh
similarity index 96%
rename from 
iotdb-core/datanode/src/assembly/resources/tools/tsfile/validate-tsfile.sh
rename to scripts/tools/tsfile/validate-tsfile.sh
index c37bda1c1c4..aaa27cac72f 100644
--- a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/validate-tsfile.sh
+++ b/scripts/tools/tsfile/validate-tsfile.sh
@@ -22,7 +22,7 @@ echo ---------------------
 echo Starting Validating the TsFile
 echo ---------------------
 
-source "$(dirname "$0")/../../sbin/iotdb-common.sh"
+source "$(dirname "$0")/../../conf/iotdb-common.sh"
 #get_iotdb_include and checkAllVariables is in iotdb-common.sh
 VARS=$(get_iotdb_include "$*")
 checkAllVariables
diff --git a/iotdb-client/cli/src/assembly/resources/tools/export-data.bat 
b/scripts/tools/windows/export-data.bat
similarity index 99%
rename from iotdb-client/cli/src/assembly/resources/tools/export-data.bat
rename to scripts/tools/windows/export-data.bat
index 2178482f369..69d9639b278 100644
--- a/iotdb-client/cli/src/assembly/resources/tools/export-data.bat
+++ b/scripts/tools/windows/export-data.bat
@@ -27,7 +27,7 @@ title IoTDB Export
 
 if "%OS%" == "Windows_NT" setlocal
 
-pushd %~dp0..
+pushd %~dp0..\..
 if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%CD%
 popd
 
diff --git a/iotdb-client/cli/src/assembly/resources/tools/import-data.bat 
b/scripts/tools/windows/import-data.bat
similarity index 99%
rename from iotdb-client/cli/src/assembly/resources/tools/import-data.bat
rename to scripts/tools/windows/import-data.bat
index cbb71dcf68d..6875d453faa 100644
--- a/iotdb-client/cli/src/assembly/resources/tools/import-data.bat
+++ b/scripts/tools/windows/import-data.bat
@@ -27,7 +27,7 @@ title IoTDB Import
 
 if "%OS%" == "Windows_NT" setlocal
 
-pushd %~dp0..
+pushd %~dp0..\..
 if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%CD%
 popd
 
diff --git a/iotdb-client/cli/src/assembly/resources/tools/load-tsfile.bat 
b/scripts/tools/windows/load-tsfile.bat
similarity index 99%
rename from iotdb-client/cli/src/assembly/resources/tools/load-tsfile.bat
rename to scripts/tools/windows/load-tsfile.bat
index 52ae0a46b76..8b777cc4503 100755
--- a/iotdb-client/cli/src/assembly/resources/tools/load-tsfile.bat
+++ b/scripts/tools/windows/load-tsfile.bat
@@ -26,7 +26,7 @@ title IoTDB Load
 
 if "%OS%" == "Windows_NT" setlocal
 
-pushd %~dp0..
+pushd %~dp0..\..
 if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%CD%
 popd
 
diff --git a/iotdb-client/cli/src/assembly/resources/tools/backup.bat 
b/scripts/tools/windows/ops/backup.bat
similarity index 96%
rename from iotdb-client/cli/src/assembly/resources/tools/backup.bat
rename to scripts/tools/windows/ops/backup.bat
index 0fa7c82776e..2a723a76fc8 100644
--- a/iotdb-client/cli/src/assembly/resources/tools/backup.bat
+++ b/scripts/tools/windows/ops/backup.bat
@@ -22,7 +22,7 @@ setlocal enabledelayedexpansion
 
 if "%OS%" == "Windows_NT" setlocal
 
-pushd %~dp0..
+pushd %~dp0..\..\..
 if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%CD%
 popd
 
@@ -32,8 +32,8 @@ set JAVA_OPTS=-ea^
  -DIOTDB_HOME="%IOTDB_HOME%"
 
 SET IOTDB_CONF=%IOTDB_HOME%\conf
-IF EXIST "%IOTDB_CONF%\datanode-env.bat" (
-  CALL "%IOTDB_CONF%\datanode-env.bat" > nul 2>&1
+IF EXIST "%IOTDB_CONF%\windows\datanode-env.bat" (
+  CALL "%IOTDB_CONF%\windows\datanode-env.bat" > nul 2>&1
 ) ELSE (
   echo Can't find datanode-env.bat
 )
diff --git a/iotdb-client/cli/src/assembly/resources/tools/collect-info.bat 
b/scripts/tools/windows/ops/collect-info.bat
similarity index 98%
rename from iotdb-client/cli/src/assembly/resources/tools/collect-info.bat
rename to scripts/tools/windows/ops/collect-info.bat
index 246228b9187..53a80b97c2d 100644
--- a/iotdb-client/cli/src/assembly/resources/tools/collect-info.bat
+++ b/scripts/tools/windows/ops/collect-info.bat
@@ -22,7 +22,7 @@
 title IoTDB Collect
 
 if "%OS%" == "Windows_NT" setlocal
-pushd %~dp0..
+pushd %~dp0..\..\..
 if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%cd%
 popd
 
@@ -151,8 +151,8 @@ exit /b
 
 :collect_activation_info
 echo =================== "Activation Info" ====================
-if exist "%~dp0/../activation" (
-    if exist "%~dp0/../activation/license" (
+if exist "%~dp0/../../../activation" (
+    if exist "%~dp0/../../../activation/license" (
         echo Active
     ) else (
         echo Not active
diff --git 
a/iotdb-core/node-commons/src/assembly/resources/sbin/destroy-all.bat 
b/scripts/tools/windows/ops/destroy-all.bat
similarity index 98%
rename from iotdb-core/node-commons/src/assembly/resources/sbin/destroy-all.bat
rename to scripts/tools/windows/ops/destroy-all.bat
index 634cd2dd384..a82bf9aa448 100644
--- a/iotdb-core/node-commons/src/assembly/resources/sbin/destroy-all.bat
+++ b/scripts/tools/windows/ops/destroy-all.bat
@@ -26,7 +26,7 @@ if not "%CLEAN_SERVICE%"=="y" if not "%CLEAN_SERVICE%"=="Y" (
   goto finally
 )
 
-pushd %~dp0..
+pushd %~dp0..\..\..
 if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%cd%
 popd
 
diff --git 
a/iotdb-core/node-commons/src/assembly/resources/sbin/destroy-confignode.bat 
b/scripts/tools/windows/ops/destroy-confignode.bat
similarity index 98%
rename from 
iotdb-core/node-commons/src/assembly/resources/sbin/destroy-confignode.bat
rename to scripts/tools/windows/ops/destroy-confignode.bat
index 0fd3bd5d994..217a93848e5 100644
--- a/iotdb-core/node-commons/src/assembly/resources/sbin/destroy-confignode.bat
+++ b/scripts/tools/windows/ops/destroy-confignode.bat
@@ -17,7 +17,7 @@
 @REM under the License.
 @REM
 @echo off
-pushd %~dp0..
+pushd %~dp0..\..\..
 if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%cd%
 popd
 
diff --git 
a/iotdb-core/node-commons/src/assembly/resources/sbin/destroy-datanode.bat 
b/scripts/tools/windows/ops/destroy-datanode.bat
similarity index 99%
rename from 
iotdb-core/node-commons/src/assembly/resources/sbin/destroy-datanode.bat
rename to scripts/tools/windows/ops/destroy-datanode.bat
index b64cd00dc49..6dff453f582 100644
--- a/iotdb-core/node-commons/src/assembly/resources/sbin/destroy-datanode.bat
+++ b/scripts/tools/windows/ops/destroy-datanode.bat
@@ -17,7 +17,7 @@
 @REM under the License.
 @REM
 @echo off
-pushd %~dp0..
+pushd %~dp0..\..\..
 if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%cd%
 popd
 
diff --git 
a/iotdb-core/node-commons/src/assembly/resources/sbin/health_check.bat 
b/scripts/tools/windows/ops/health_check.bat
similarity index 98%
rename from iotdb-core/node-commons/src/assembly/resources/sbin/health_check.bat
rename to scripts/tools/windows/ops/health_check.bat
index 19c40f3974e..e33876cc777 100644
--- a/iotdb-core/node-commons/src/assembly/resources/sbin/health_check.bat
+++ b/scripts/tools/windows/ops/health_check.bat
@@ -108,15 +108,15 @@ set JAVA_VERSION=%MAJOR_VERSION%
 
 if "%OS%" == "Windows_NT" setlocal
 
-pushd %~dp0..
+pushd %~dp0..\..\..
 if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%cd%
 popd
 
-pushd %~dp0..
+pushd %~dp0..\..\..
 if NOT DEFINED CONFIGNODE_HOME set CONFIGNODE_HOME=%cd%
 popd
 
-pushd %~dp0..
+pushd %~dp0..\..\..
 if NOT DEFINED DATANODE_HOME set DATANODE_HOME=%cd%
 popd
 
@@ -172,8 +172,8 @@ exit /b
 :local_mem_check
 @setlocal ENABLEDELAYEDEXPANSION ENABLEEXTENSIONS
 SET IOTDB_CONF=%IOTDB_HOME%\conf
-IF EXIST "%IOTDB_CONF%\datanode-env.bat" (
-  CALL "%IOTDB_CONF%\datanode-env.bat" > nul 2>&1
+IF EXIST "%IOTDB_CONF%\windows\datanode-env.bat" (
+  CALL "%IOTDB_CONF%\windows\datanode-env.bat" > nul 2>&1
 ) ELSE (
   echo Can't find datanode-env.bat
 )
@@ -181,8 +181,8 @@ IF EXIST "%IOTDB_CONF%\datanode-env.bat" (
 set datanode_mem= %memory_size_in_mb%
 
 
-IF EXIST "%IOTDB_CONF%\confignode-env.bat" (
-  CALL "%IOTDB_CONF%\confignode-env.bat" > nul 2>&1
+IF EXIST "%IOTDB_CONF%\windows\confignode-env.bat" (
+  CALL "%IOTDB_CONF%\windows\confignode-env.bat" > nul 2>&1
 ) ELSE (
    echo Can't find datanode-env.bat
  )
diff --git a/iotdb-core/ainode/resources/sbin/remove-ainode.bat 
b/scripts/tools/windows/ops/remove-ainode.bat
similarity index 82%
rename from iotdb-core/ainode/resources/sbin/remove-ainode.bat
rename to scripts/tools/windows/ops/remove-ainode.bat
index fe163e7feac..d2cca8b84c5 100644
--- a/iotdb-core/ainode/resources/sbin/remove-ainode.bat
+++ b/scripts/tools/windows/ops/remove-ainode.bat
@@ -24,7 +24,7 @@ IF "%~1"=="--help" (
     echo When it is necessary to move an already connected AINode out of the 
cluster, the corresponding removal script can be executed.
     echo Usage:
     echo Remove the AINode with ainode_id
-    echo ./sbin/remove-ainode.bat -t [ainode_id]
+    echo ./tools/windows/ops/remove-ainode.bat -t [ainode_id]
     echo.
     echo Options:
     echo ^ ^ -t = ainode_id
@@ -36,8 +36,10 @@ echo ```````````````````````````
 echo Removing IoTDB AINode
 echo ```````````````````````````
 
-set REMOVE_SCRIPT_DIR=%~dp0
-call %REMOVE_SCRIPT_DIR%\\..\\conf\\\ainode-env.bat %*
+pushd %~dp0..\..\..
+if NOT DEFINED IOTDB_AINODE_HOME set IOTDB_AINODE_HOME=%cd%
+popd
+call %IOTDB_AINODE_HOME%\\conf\\windows\\ainode-env.bat %*
 if %errorlevel% neq 0 (
     echo Environment check failed. Exiting...
     exit /b 1
@@ -55,7 +57,7 @@ if "%aux:~0,1%"=="-" (
 shift
 goto initial
 
-for /f "tokens=2 delims==" %%a in ('findstr /i /c:"^ain_interpreter_dir" 
"%REMOVE_SCRIPT_DIR%\\..\\conf\\\ainode-env.bat"') do (
+for /f "tokens=2 delims==" %%a in ('findstr /i /c:"^ain_interpreter_dir" 
"%IOTDB_AINODE_HOME%\\conf\\windows\\\ainode-env.bat"') do (
     set _ain_interpreter_dir=%%a
     goto :interpreter
 )
@@ -63,26 +65,26 @@ for /f "tokens=2 delims==" %%a in ('findstr /i 
/c:"^ain_interpreter_dir" "%REMOV
 :interpreter
 if "%i%"=="" (
     if "%_ain_interpreter_dir%"=="" (
-        set 
_ain_interpreter_dir=%REMOVE_SCRIPT_DIR%\\..\\venv\\Scripts\\python.exe
+        set _ain_interpreter_dir=%IOTDB_AINODE_HOME%\\venv\\Scripts\\python.exe
     )
 ) else (
     set _ain_interpreter_dir=%i%
 )
 
 
-for /f "tokens=2 delims==" %%a in ('findstr /i /c:"^ain_system_dir" 
"%REMOVE_SCRIPT_DIR%\\..\\conf\\iotdb-\ainode.properties"') do (
+for /f "tokens=2 delims==" %%a in ('findstr /i /c:"^ain_system_dir" 
"%IOTDB_AINODE_HOME%\\conf\\iotdb-\ainode.properties"') do (
     set _ain_system_dir=%%a
     goto :system
 )
 
 :system
 if "%_ain_system_dir%"=="" (
-    set _ain_system_dir=%REMOVE_SCRIPT_DIR%\\..\\data\\\ainode\\system
+    set _ain_system_dir=%IOTDB_AINODE_HOME%\\data\\\ainode\\system
 )
 
 echo Script got parameters: ain_interpreter_dir: %_ain_interpreter_dir%, 
ain_system_dir: %_ain_system_dir%
 
-cd %REMOVE_SCRIPT_DIR%\\..
+cd %IOTDB_AINODE_HOME%
 for %%i in ("%_ain_interpreter_dir%") do set "parent=%%~dpi"
 set ain_\ainode_dir=%parent%\\\ainode.exe
 
@@ -98,7 +100,7 @@ if %errorlevel% neq 0 (
     exit /b 1
 )
 
-call %REMOVE_SCRIPT_DIR%\\stop-\ainode.bat %*
+call %IOTDB_AINODE_HOME%\\sbin\\windows\\stop-\ainode.bat %*
 
 rd /s /q %_ain_system_dir%
 
diff --git a/iotdb-client/cli/src/assembly/resources/tools/export-schema.bat 
b/scripts/tools/windows/schema/export-schema.bat
similarity index 99%
rename from iotdb-client/cli/src/assembly/resources/tools/export-schema.bat
rename to scripts/tools/windows/schema/export-schema.bat
index dab5dfaf667..397d8ab9408 100644
--- a/iotdb-client/cli/src/assembly/resources/tools/export-schema.bat
+++ b/scripts/tools/windows/schema/export-schema.bat
@@ -27,7 +27,7 @@ echo ````````````````````````````````````````````````
 
 if "%OS%" == "Windows_NT" setlocal
 
-pushd %~dp0..
+pushd %~dp0..\..\..
 if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%CD%
 popd
 
diff --git a/iotdb-client/cli/src/assembly/resources/tools/import-schema.bat 
b/scripts/tools/windows/schema/import-schema.bat
similarity index 99%
rename from iotdb-client/cli/src/assembly/resources/tools/import-schema.bat
rename to scripts/tools/windows/schema/import-schema.bat
index fbf5236128b..f01dd4e94c0 100644
--- a/iotdb-client/cli/src/assembly/resources/tools/import-schema.bat
+++ b/scripts/tools/windows/schema/import-schema.bat
@@ -27,7 +27,7 @@ echo ````````````````````````````````````````````````
 
 if "%OS%" == "Windows_NT" setlocal
 
-pushd %~dp0..
+pushd %~dp0..\..\..
 if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%CD%
 popd
 
diff --git 
a/iotdb-core/datanode/src/assembly/resources/tools/schema/print-pb-tree-file.bat
 b/scripts/tools/windows/schema/print-pb-tree-file.bat
similarity index 98%
rename from 
iotdb-core/datanode/src/assembly/resources/tools/schema/print-pb-tree-file.bat
rename to scripts/tools/windows/schema/print-pb-tree-file.bat
index 8a4bbf23e3b..e4d8c42b7a9 100644
--- 
a/iotdb-core/datanode/src/assembly/resources/tools/schema/print-pb-tree-file.bat
+++ b/scripts/tools/windows/schema/print-pb-tree-file.bat
@@ -25,7 +25,7 @@ echo ````````````````````````
 
 if "%OS%" == "Windows_NT" setlocal
 
-pushd %~dp0..\..
+pushd %~dp0..\..\..
 if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%CD%
 popd
 
diff --git 
a/iotdb-core/datanode/src/assembly/resources/tools/schema/print-schema-log.bat 
b/scripts/tools/windows/schema/print-schema-log.bat
similarity index 98%
rename from 
iotdb-core/datanode/src/assembly/resources/tools/schema/print-schema-log.bat
rename to scripts/tools/windows/schema/print-schema-log.bat
index 7e917cfeeb2..52a83297cdc 100644
--- 
a/iotdb-core/datanode/src/assembly/resources/tools/schema/print-schema-log.bat
+++ b/scripts/tools/windows/schema/print-schema-log.bat
@@ -25,7 +25,7 @@ echo ````````````````````````
 
 if "%OS%" == "Windows_NT" setlocal
 
-pushd %~dp0..\..
+pushd %~dp0..\..\..
 if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%CD%
 popd
 
diff --git 
a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/check-overlap-sequence-files-and-repair.bat
 b/scripts/tools/windows/tsfile/check-overlap-sequence-files-and-repair.bat
similarity index 98%
rename from 
iotdb-core/datanode/src/assembly/resources/tools/tsfile/check-overlap-sequence-files-and-repair.bat
rename to 
scripts/tools/windows/tsfile/check-overlap-sequence-files-and-repair.bat
index 4af5e1a4a5e..eb7fe8f072e 100644
--- 
a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/check-overlap-sequence-files-and-repair.bat
+++ b/scripts/tools/windows/tsfile/check-overlap-sequence-files-and-repair.bat
@@ -25,7 +25,7 @@ echo ````````````````````````
 
 if "%OS%" == "Windows_NT" setlocal
 
-pushd %~dp0..\..
+pushd %~dp0..\..\..
 if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%CD%
 popd
 
diff --git 
a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/overlap-statistic-tool.bat
 b/scripts/tools/windows/tsfile/overlap-statistic-tool.bat
similarity index 98%
rename from 
iotdb-core/datanode/src/assembly/resources/tools/tsfile/overlap-statistic-tool.bat
rename to scripts/tools/windows/tsfile/overlap-statistic-tool.bat
index 500c3c7d12a..3140c9f2184 100644
--- 
a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/overlap-statistic-tool.bat
+++ b/scripts/tools/windows/tsfile/overlap-statistic-tool.bat
@@ -25,7 +25,7 @@ echo ````````````````````````
 
 if "%OS%" == "Windows_NT" setlocal
 
-pushd %~dp0..\..
+pushd %~dp0..\..\..
 if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%CD%
 popd
 
diff --git 
a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/print-iotdb-data-dir.bat
 b/scripts/tools/windows/tsfile/print-iotdb-data-dir.bat
similarity index 98%
rename from 
iotdb-core/datanode/src/assembly/resources/tools/tsfile/print-iotdb-data-dir.bat
rename to scripts/tools/windows/tsfile/print-iotdb-data-dir.bat
index 979e467f5b4..8042b384a38 100644
--- 
a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/print-iotdb-data-dir.bat
+++ b/scripts/tools/windows/tsfile/print-iotdb-data-dir.bat
@@ -25,7 +25,7 @@ echo ````````````````````````
 
 if "%OS%" == "Windows_NT" setlocal
 
-pushd %~dp0..\..
+pushd %~dp0..\..\..
 if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%CD%
 popd
 
diff --git 
a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/print-tsfile-resource-files.bat
 b/scripts/tools/windows/tsfile/print-tsfile-resource-files.bat
similarity index 98%
rename from 
iotdb-core/datanode/src/assembly/resources/tools/tsfile/print-tsfile-resource-files.bat
rename to scripts/tools/windows/tsfile/print-tsfile-resource-files.bat
index 0f7215286a0..1fcf1908e25 100644
--- 
a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/print-tsfile-resource-files.bat
+++ b/scripts/tools/windows/tsfile/print-tsfile-resource-files.bat
@@ -24,7 +24,7 @@ echo ````````````````````````
 
 if "%OS%" == "Windows_NT" setlocal
 
-pushd %~dp0..\..
+pushd %~dp0..\..\..
 if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%CD%
 popd
 
diff --git 
a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/print-tsfile.bat 
b/scripts/tools/windows/tsfile/print-tsfile.bat
similarity index 98%
rename from 
iotdb-core/datanode/src/assembly/resources/tools/tsfile/print-tsfile.bat
rename to scripts/tools/windows/tsfile/print-tsfile.bat
index ba930fe4b58..bd7f0c8cf83 100644
--- a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/print-tsfile.bat
+++ b/scripts/tools/windows/tsfile/print-tsfile.bat
@@ -25,7 +25,7 @@ echo ````````````````````````
 
 if "%OS%" == "Windows_NT" setlocal
 
-pushd %~dp0..\..
+pushd %~dp0..\..\..
 if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%CD%
 popd
 
diff --git 
a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/settle-tsfile.bat 
b/scripts/tools/windows/tsfile/settle-tsfile.bat
similarity index 98%
rename from 
iotdb-core/datanode/src/assembly/resources/tools/tsfile/settle-tsfile.bat
rename to scripts/tools/windows/tsfile/settle-tsfile.bat
index 1e4e9f744c5..8fb4a8b6568 100644
--- a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/settle-tsfile.bat
+++ b/scripts/tools/windows/tsfile/settle-tsfile.bat
@@ -25,7 +25,7 @@ echo ````````````````````````````````````````````
 
 if "%OS%" == "Windows_NT" setlocal
 
-pushd %~dp0..\..
+pushd %~dp0..\..\..
 if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%CD%
 popd
 
diff --git 
a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/split-tsfile-tool.bat 
b/scripts/tools/windows/tsfile/split-tsfile-tool.bat
similarity index 98%
rename from 
iotdb-core/datanode/src/assembly/resources/tools/tsfile/split-tsfile-tool.bat
rename to scripts/tools/windows/tsfile/split-tsfile-tool.bat
index 5e78cb380ff..97b86b217b4 100644
--- 
a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/split-tsfile-tool.bat
+++ b/scripts/tools/windows/tsfile/split-tsfile-tool.bat
@@ -25,7 +25,7 @@ echo ````````````````````````
 
 if "%OS%" == "Windows_NT" setlocal
 
-pushd %~dp0..\..
+pushd %~dp0..\..\..
 if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%CD%
 popd
 
diff --git 
a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/validate-tsfile.bat 
b/scripts/tools/windows/tsfile/validate-tsfile.bat
similarity index 98%
rename from 
iotdb-core/datanode/src/assembly/resources/tools/tsfile/validate-tsfile.bat
rename to scripts/tools/windows/tsfile/validate-tsfile.bat
index dcd22f0c2af..3ecd85f88fe 100644
--- 
a/iotdb-core/datanode/src/assembly/resources/tools/tsfile/validate-tsfile.bat
+++ b/scripts/tools/windows/tsfile/validate-tsfile.bat
@@ -25,7 +25,7 @@ echo ````````````````````````
 
 if "%OS%" == "Windows_NT" setlocal
 
-pushd %~dp0..\..
+pushd %~dp0..\..\..
 if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%CD%
 popd
 


Reply via email to