Board logo

标题: [文本处理] 用批处理修改server.xml中的路径文件改为其他路径怎么写(红色部份) [打印本页]

作者: xsenlin    时间: 2019-5-17 12:45     标题: 用批处理修改server.xml中的路径文件改为其他路径怎么写(红色部份)

<?xml version='1.0' encoding='utf-8'?>
<Server port="8008" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JasperListener" />
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
  <GlobalNamingResources>
     <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>
  <Service name="Catalina">
      <Connector port="8019" protocol="HTTP/1.1"
               connectionTimeout="20000"
                            maxKeepAliveRequests="20"
                           keepAliveTimeout="15000"
               redirectPort="8447"/>
       <Connector port="8007" protocol="AJP/1.3" redirectPort="8443" />


    <Engine name="Catalina" defaultHost="localhost">

      <Realm className="org.apache.catalina.realm.LockOutRealm">
        
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>

      <Host name="localhost"  appBase=""
            unpackWARs="true" autoDeploy="true">

                <Context path="" docBase="D:\oademo\swoa2017_show_jzb\site"
                 reloadable="true" crossContext="true">
                         </Context>
      </Host>
    </Engine>
  </Service>
</Server>
作者: Batcher    时间: 2019-5-17 13:14

因为涉及文件编码问题,请把这个xml文件压缩一下传上来我试试
作者: zaqmlp    时间: 2019-5-17 14:10

  1. @echo off
  2. set info=互助互利,支付宝扫码头像,感谢赞助
  3. rem 有问题,可加QQ956535081及时沟通
  4. title %info%
  5. cd /d "%~dp0"
  6. powershell -NoProfile -ExecutionPolicy bypass ^
  7.     $Utf8NoBomEncoding=New-Object System.Text.UTF8Encoding $False;^
  8.     dir^|?{($_ -is [System.IO.FileInfo]) -and ($_.Name -eq 'server.xml')}^|%%{^
  9.         write-host $_.FullName;^
  10.         $text=[IO.File]::ReadAllText($_.FullName, $Utf8NoBomEncoding);^
  11.         $text=$text -replace '(?^<=^<Context path=.+? docBase=\"")[^^\""]*','E:\123\test';^
  12.         [IO.File]::WriteAllText($_.FullName, $text, $Utf8NoBomEncoding);^
  13.     };^
  14.     write-host '%info%' -ForegroundColor green;
  15. pause
复制代码

作者: xsenlin    时间: 2019-5-17 14:23     标题: TOMCAT中SERVER.XML 帮忙写个命令启动附件中

项目A
项目B
项目C
使用公共TOMCAT启动环境
如启运功 项目A,需手动改动TOMCAT 中server.xml 文件需配置
<Context path="" docBase="D:\oademo\swoa2017_show_jzb\site"
                 reloadable="true" crossContext="true">
</Context>
中的docBase="项目A所在目录"

同理若要启动项目B,则docBase="项目B所在目录"
项目C,则docBase="项目C所在目录"
配置文件见附件

请高手帮忙写个批处理命令,分别放在项目A,B,C中,实现用公共的TOMCAT,通过批处理改路径配置,启动不同项目
作者: xsenlin    时间: 2019-5-17 14:24

项目A,项目B,项目C是三个位置不同的目录
作者: Batcher    时间: 2019-5-17 14:42

不建议每次都直接修改xml文件内容。建议准备3个不同的文件在需要的时候覆盖一下,例如:
server_A.xml
server_B.xml
server_C.xml

启动项目A.bat
  1. @echo off
  2. copy /y "server_A.xml" "server.xml"
  3. REM 启动命令写在下面
复制代码
启动项目B.bat
  1. @echo off
  2. copy /y "server_B.xml" "server.xml"
  3. REM 启动命令写在下面
复制代码
启动项目C.bat
  1. @echo off
  2. copy /y "server_C.xml" "server.xml"
  3. REM 启动命令写在下面
复制代码

作者: xsenlin    时间: 2019-5-17 15:01

@echo off
set site=%cd%\site

set info=路径设置成功,你可以开启项目了。
rem 有问题,可加QQ956535081及时沟通
title %site%
cd /d "C:\tools\tomcat7.0.50\conf"
powershell -NoProfile -ExecutionPolicy bypass ^
    $Utf8NoBomEncoding=New-Object System.Text.UTF8Encoding $False;^
    dir^|?{($_ -is [System.IO.FileInfo]) -and ($_.Name -eq 'server.xml')}^|%%{^
        write-host $_.FullName;^
        $text=[IO.File]::ReadAllText($_.FullName, $Utf8NoBomEncoding);^
        $text=$text -replace '(?^<=^<Context path=.+? docBase=\"")[^^\""]*','%site%';^
        [IO.File]::WriteAllText($_.FullName, $text, $Utf8NoBomEncoding);^
    };^
    write-host '%info%' -ForegroundColor green;
pause
作者: xsenlin    时间: 2019-5-17 15:02

回复 6# Batcher


    也是一个不错的办法
作者: xsenlin    时间: 2019-5-17 15:05

谢谢Batcher和zaqmlp,这个网站太可怕了,回复的那么即时,不火都不行
作者: zaqmlp    时间: 2019-5-17 16:49

回复 9# xsenlin

赞助才是动力




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2