我使用的是 WindowsXP 并且我想运行以下命令:
tomcat6 //IS//AlfrescoTomcat --DisplayName="Alfresco Community Edition" \
--Description="Alfresco Tomcat Bundle - Repository and Share" \
--Install="C:\alfresco-community-tomcat-3.3\tomcat\bin\tomcat6.exe" \
--Startup="auto" \
--Jvm="C:\Program Files\Java\jdk1.6.0_18\jre\bin\server\jvm.dll" \
--Classpath="C:\alfresco-community-tomcat-3.3\tomcat\bin\bootstrap.jar" \
--StartMode=jvm --StopMode=jvm --StartClass=org.apache.catalina.startup.Bootstrap \
--StartPath="C:\alfresco-community-tomcat-3.3" --StartParams=start \
--StopClass=org.apache.catalina.startup.Bootstrap --StopParams=stop \
--JvmMs=256 --JvmMx=1024 --JvmSs=1024 \
++JvmOptions="-Dcatalina.home=C:\alfresco-community-tomcat-3.3\tomcat" \
++JvmOptions="-Dcatalina.base=C:\alfresco-community-tomcat-3.3\tomcat" \
++JvmOptions="-Djava.endorsed.dirs=C:\alfresco-community-tomcat-3.3\tomcat\endorsed" \
++JvmOptions="-Djava.io.tmpdir=C:\alfresco-community-tomcat-3.3\tomcat\temp" \
++JvmOptions="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" \
++JvmOptions="-Djava.util.logging.config.file=C:\alfresco-community-tomcat-3.3\tomcat\conf\logging.properties" \
++JvmOptions="-XX:MaxPermSize=256m" \
++JvmOptions="-XX:NewSize=256m" \
++JvmOptions="-Dalfresco.home=C:\alfresco-community-tomcat-3.3" \
++JvmOptions="-Dcom.sun.management.jmxremote=true"
由于这是一个很长的命令,需要传递很多参数,因此我创建了一个批处理文件来运行它,但它只执行第一行,其余每行都作为单独的命令执行。有没有办法一起运行整个命令?
谢谢
答案1
Windows 使用插入符号 ( ^
) 作为行继续符,而不是反斜杠。如果您将每行末尾的反斜杠替换为插入符号,它将作为一个命令运行。
答案2
如果要将其放入批处理文件中,为什么还需要换行符?删除这些(和 \ 字符),然后打开自动换行,以便于编辑。
答案3
首先,使用 DELAYEDEXPANSION 和高级主题,您可以使用胡萝卜字符将批处理文件中的单独行组合成单个字符串,以使您的批处理文件更漂亮。
但是,快捷方式是将字符串参数全部添加到一个名为 MYARGS 的字符串变量中(减去 tomcat.exe 前缀)。然后,连接变量 MYARGS 等于命令行参数的整个字符串,然后您可以使用 DOS 批处理文件进行处理以检查命令的长度,然后运行它,如下所示:
@echo off
setlocal ENABLEDELAYEDEXPANSION
:: additional content here
:: ....
set #=%MYARGS%
set length=0
:loop
if defined # (
set #=%#:~1%
set /A length += 1
goto :loop
)
if %length% GTR 8191 (
echo MYARGS is %length% characters long. The total length of environment variable after you
echo expand them cannot contain more than 8191 characters under Windows 2003+
GOTO :end
) else if %length% GTR 2047 (
echo MYARGS is %length% characters long. The total length of environment variable after you
echo expand them cannot contain more than 2047 characters under Windows XP
GOTO :end
)
:startit
tomcat6.exe %MYARGS%
:end
pause