我有一个批处理文件,一个接一个地执行三个Maven命令.每个命令都可以在脚本中成功执行 - 本身!但是当我将所有三个命令添加到同一个文件时,只有第一个命令在脚本退出之前执行.知道为什么吗?
mvn install:install-file -DgroupId=gdata -DartifactId=base -Dversion=1.0 -Dfile=gdata-base-1.0.jar -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=blogger -Dversion=2.0 -Dfile=gdata-blogger-2.0.jar -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=blogger-meta -Dversion=2.0 -Dfile=gdata-blogger-meta-2.0.jar -Dpackaging=jar -DgeneratePom=true
Run Code Online (Sandbox Code Playgroud)
此外,如果我复制所有三个命令并将它们粘贴到命令shell(cmd.exe)中,它们会一个接一个地执行,没有任何问题.所以这显然是dos批处理文件的一些问题.
我正在尝试编写一个Windows cmd脚本来执行多个串行任务.但是,它始终在脚本中的第一个命令后停止.
它停止后的命令是maven构建(不确定是否相关).
如何让它依次进行并依次运行每项任务?
安装任何软件或配置注册表等是完全不可能的 - 它必须在我担心的Windows XP安装上工作.
理想情况下,如果任何命令失败,我希望脚本中止,但这是一个"很好",不是必需的.
谢谢.
我有一个我正在测试的批处理文件,我想要做的就是以下内容
CALL ping.bat
Run Code Online (Sandbox Code Playgroud)
然后在该批处理文件运行后我想运行另一个文件:
CALL ping2.bat
Run Code Online (Sandbox Code Playgroud)
现在我在批处理文件中将这两行放在一起,第一批文件将成功触发但第二批文件不会成功触发.有什么建议?
CALL ping.bat
CALL ping2.bat
Run Code Online (Sandbox Code Playgroud)
Ping .bat只是:
ping 127.0.0.1
Run Code Online (Sandbox Code Playgroud) 看来cmd脚本包含:
prog1
prog2
Run Code Online (Sandbox Code Playgroud)
做同样的事
call prog1
call prog2
Run Code Online (Sandbox Code Playgroud)
使用CALL命令有什么意义?
好吧,让我们说我们有一个名为"lib.cmd"的文件
@echo off
GOTO:EXIT
:FUNCTION
echo something
GOTO:EOF
:EXIT
exit /b
Run Code Online (Sandbox Code Playgroud)
然后我们有一个名为"init.cmd"的文件
@echo off
call lib.cmd
Run Code Online (Sandbox Code Playgroud)
无论如何都要访问:init.cmd中的FUNCTION?就像bash使用"source"一样,将另一个bash文件运行到同一个进程中.
是否可以在一个.bat脚本中运行两个grunt任务?
我尝试了以下方法:
grunt --param=val1 --force
grunt --param=val2 --force
Run Code Online (Sandbox Code Playgroud)
但只运行了第一项任务.有任何想法吗?
我想运行一个批处理文件,启动其他批处理文件.我查看了此处发布的类似问题:如何在.BAT文件中运行多个.BAT文件
我按照这个例子(特别是最后一个建议)而且它有效...部分.它确实启动了我需要的批处理文件.但是,为了使应用程序正常运行,这些批处理文件中的一些必须打开,然后在下一个批处理文件的下一个启动之前运行它们的过程几秒钟,否则它们将不会被注册.具体来说,第一个批处理文件启动Web应用程序服务器(JBOSS 5.1),然后下一个批处理文件打开池管理器,然后另外两个启动分发服务器.当我运行调用其他文件的批处理文件时,它们几乎同时启动,并且它们不会相互注册.我甚至可以使用批处理文件吗?或者我是否必须进入其他批处理文件的代码并在那里进行更改?我想不惜一切代价避免这种情况.
这是我到目前为止:
start cmd /k CALL D:\jboss-5.1.0.GA-jdk6\jboss-5.1.0.GA\bin\run.bat
start cmd /k CALL batch1.bat
start cmd /k CALL batch2.bat
start cmd /k CALL batch3.bat
Run Code Online (Sandbox Code Playgroud) 我创建了以下批处理文件:jupyter_nn.bat。内部文件我有:
cd "C:\My_favorite_path"
activate neuralnets
jupyter notebook
Run Code Online (Sandbox Code Playgroud)
因此,目标是激活conda虚拟环境并启动jupyter Notebook。由于某些原因,这不起作用。窗户立即关闭。如果我从cmd运行此批处理文件,则仅执行activate neulranets。我已经尝试过pause和pause>nul其他伏都教舞蹈。有什么建议么?这也适用于Windows 7。
我的.bat文件如下:
@echo on
cd %1\%2
copy D:\source\Meep\bat\ant.properties .\
android update project -p .\
ant clean
ant release
Run Code Online (Sandbox Code Playgroud)
当我启动bat文件时,它正确地运行到行android update project -p .\,然后它跳到最后跳过行ant clean和ant release.
以下内容在控制台中打印出来:
D:\>cd D:\source\Meep\Meep\trunk\MeepApp
D:\source\Meep\Meep\trunk\MeepApp>copy D:\source\Meep\bat\ant.properties .\
??? 1 ????
D:\source\Meep\Meep\trunk\MeepApp>android update project -p .\
Updated local.properties
Updated file D:\source\Meep\Meep\trunk\MeepApp\proguard-project.txt
D:\source\Meep\Meep\trunk\MeepApp>
Run Code Online (Sandbox Code Playgroud)
这是为什么?请告诉我如何运行整个bat命令.非常感谢.
注意:当我逐一在CMD上输入命令时,它运行正常.
我有一个文件npm_version.cmd不会暂停,而是关闭窗口:
npm -v
@pause
Run Code Online (Sandbox Code Playgroud)
我有一个类似的文件nodejs_version.cmd,它会暂停并保持窗口打开:
node -v
@pause
Run Code Online (Sandbox Code Playgroud)
看起来 npm 正在将窗口更改为 npm,然后再更改回 cmd 或其他内容。
知道如何强制暂停吗?