【问题标题】:Run BAT files from other BAT files?从其他 BAT 文件运行 BAT 文件?
【发布时间】:2013-06-30 01:31:23
【问题描述】:

我有多个 .bat 文件,用于具有不同参数的同一程序。这可能吗?

这是我现在拥有的:

@echo off
Cls
color 0A
echo title
PAUSE
:Main
color 0A
Cls
echo 1 : name1.bat
echo 2 : name2.bat
echo 3 : name3.bat
set /p file=Enter the number of the file you want to run:
Cls

这样的东西有用吗?输入它的编号时,我需要做什么才能让它运行一个 bat 文件?

【问题讨论】:

    标签: command-line batch-file cmd


    【解决方案1】:

    有几种方法可以解决这个问题。最短(最简单)的一个是:1-确保用户只能通过choice 命令输入有效的输入值,2-使用固定格式名称命名所有批处理文件(如您的示例中的名称)并调用直接合适。

    @echo off
    Cls
    color 0A
    echo title
    PAUSE
    :Main
    color 0A
    Cls
    echo 1 : name1.bat
    echo 2 : name2.bat
    echo 3 : name3.bat
    choice /C:123 /M:"Enter the number of the file you want to run: "
    call name%errorlevel%.bat
    

    【讨论】:

      【解决方案2】:

      是的,你可以有条件循环。您可以测试变量值并按以下方式执行。您也可以使用call 语句。

      IF "%file%" EQU "1" ( 
             name1.bat
         )
         IF "%file%" EQU "2" ( 
             name2.bat
         )
         IF "%file%" EQU "3" ( 
             name3.bat
         )
      

      【讨论】:

      • 你必须call其他批处理文件,否则在被调用的批处理终止后控制权不会返回到调用的批处理文件。
      • 这包括不必要的缩进和命令为什么不使用上面列出的更简单的版本。它们更容易理解并且有自我解释的命令。我相信它们也可以工作
      【解决方案3】:

      当前 .bat 文件正在 C 盘中运行,您要运行放置在 D: 目录中的 .bat 文件,然后在第一个 .bat 写入中运行。

      D:
      cd "D:/folder/folder2/"
      call batFile.bat
      

      【讨论】:

        【解决方案4】:

        您好,我假设您要启动用户选择的批处理文件 这是代码:

           @echo off
           Cls
           color 0A
           echo title
           PAUSE
         :Main
           color 0A
           Cls
           echo 1 : name1.bat
           echo 2 : name2.bat
           echo 3 : name3.bat
           set /p file=Enter the number of the file you want to run
           if %file%==1 start name1.bat
           if %file%==2 start name2.bat
           if %file%==3 start name3.bat
           goto end
         :end
            echo File is now running!
             pause  
        

        【讨论】:

          【解决方案5】:

          您也可以使用 goto 选项:

          @echo off
          Cls
          color 0A
          echo title
          PAUSE
          :Main
          color 0A
          Cls
          echo 1 : name1.bat
          echo 2 : name2.bat
          echo 3 : name3.bat
          set /p file=Enter the number of the file you want to run:
          Cls
          GOTO %file%
          
          :1
          start name1.bat
          exit
          
          :2
          start name2.bat
          exit
          
          :3
          start name3.bat
          exit
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2015-10-13
            • 2018-09-07
            • 2012-03-08
            • 2013-11-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多