如何在当前.bat文件运行时调用另一个.bat文件

时间:2016-01-05 05:50:26

标签: windows batch-file cmd

我想在我的项目上运行声纳,以便为此创建 .bat 文件

//第一步

  

我需要先从这个位置启动服务器   ' C:\声纳\ sonarqube-4.1.1 \ BIN \ windows的X86-64 \ StartSonar.bat'之后   服务器在线并正在运行...

//第二步

  

打开另一个cmd并设置我的项目路径并执行   ' C:\声纳\声纳浇道\声纳浇道-2.3 \ BIN \声纳-runner.bat'在我的   项目

//我现在所做的就是首先启动服务器,如第一步所述,现在我正在执行' .bat'由我创建如下

@echo off
cd /d D:\PROJECT_Workspace\GUI
call C:\Sonar\sonar-runner\sonar-runner-2.3\bin\sonar-runner.bat
  

我想合并上面解释的两个步骤并创建一个' .bat'我未能创造。

作为创建蝙蝠和尝试创建蝙蝠文件的新手,所以任何帮助都会受到赞赏..

提前致谢!!!

3 个答案:

答案 0 :(得分:0)

将这些行合并为单个文件,因此将逐个执行

创建bat文件 Sonar.bat 并拥有以下命令

@echo off 
call C:\Sonar\sonarqube-4.1.1\bin\windows-x86-64\StartSonar.bat
echo sonar started successfully
cd D:\PROJECT_Workspace\GUI
call C:\Sonar\sonar-runner\sonar-runner-2.3\bin\sonar-runner.bat
echo sonar test is running ...

在sonar.bat的同一目录中创建另一个bat文件 RunSonarAndLog.bat

@echo off
echo %DATE% >> Sonar.log
call Sonar.bat >> Sonar.log
echo %DATE% >> Sonar.log
echo press any key to close
pause >nul >> Sonar.log

现在您可以使用RunSonarAndLog.bat执行并记录verbos。 如果您想将您的bat文件固定在Windows任务栏中以便频繁访问,请点击此链接 - pin-batfile-in-windows7-taskbar

我想知道为什么要将目录更改为工作区?

答案 1 :(得分:0)

    @echo off
    cd /d D:\PROJECT_Workspace\GUI
    call C:\Sonar\sonar-runner\sonar-runner-2.3\bin\sonar-runner.bat

...为什么你在D:\上的另一个文件夹中执行cd,然后从C:\运行Sonar-runner.bat?所以cd行是不必要的。使用call命令启动第二批,然后返回第一批。尝试类似:

start "" "C:\Batch.bat" 

start命令打开一个新的Windows,不要中断第一个。您也可以使用start / wait来获得与call相同的功能(第一批只在第二批完成/关闭时再次运行)。因此,如果两者都必须同时运行,则使用start而不使用wait选项。

答案 2 :(得分:0)

只需使用call命令调用文件即可!像这样:

echo off
goto :menu
cls

:菜单    CLS    echo Type 1开始初始化&测试...    echo Type 2查看初始化日志&测试日志......    回声[    set / p ch =输入输入:    if%ch%equ 1 goto:initialize    如果%ch%equ 2 goto:logs

:initialize
cls
call C:\Sonar\sonarqube-4.1.1\bin\windows-x86-64\StartSonar.bat
echo Sonar is started.
echo[
pause
echo %date% >> C:\initiallog.txt
goto :test
cls



:test
   cls
   cd /d D:\PROJECT_Workspace\GUI
   call C:\Sonar\sonar-runner\sonar-runner-2.3\bin\sonar-runner.bat
   echo Sonar test is started...
   echo %date% >>C:\testlog.txt
   echo[
   pause 
   goto :menu

   :print
   cls
   type C:\testlog.txt
   type C:\initiallog.txt
   echo[
   pause
   goto :menu

这应该可以做到!如果有任何错误或疑虑,请告诉我们!