在Windows XP命令提示符处执行一个长命令

即时通讯使用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" 

由于这是一个很长的命令,传递了大量的参数,我创build了一个batch file来运行它,但是它只执行第一行,其他每行都作为单独的命令执行。 有没有办法一起运行整个命令?

谢谢

Windows使用插入符( ^ )作为其连续字符,而不是反斜杠。 如果在每行的末尾用反angular标记replace反斜杠,它将作为一个命令运行。

如果要进入batch file,为什么还需要换行符? 删除这些(和\字符),只要打开文字包装,使其更容易编辑。

首先,使用DELAYEDEXPANSION和高级主题,可以使用胡萝卜字符将单独的行合并到batch file中的单个string中,以使batch file更漂亮。

但是,最快捷的方法是将string参数一起添加到名为MYARGS的一个stringvariables(减去tomcat.exe前缀)中。 然后,连接variablesMYARGS等于命令行参数的整个string,然后可以使用DOSbatch file进行处理以检查命令的长度,然后运行它,如下所示:

 @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