如何使用批处理文件打开多个批处理文件

时间:2016-04-13 14:36:06

标签: windows batch-file cmd

我使用start.bat来调用多个其他批处理文件。我不知道怎么做。

cd "C:\Users\server\Desktop\MAG8000_CSV\MAG8000_606402H016"
call mergingcsv.bat

我使用此代码,它适用于我的start.bat。它调用我的mergingcsv.bat

我需要多少电话mergingcsv.bat

我需要打开41 mergingcsv.bat,其中每个都在一个单独的文件夹中。

当我这样做时

cd "C:\Users\server\Desktop\MAG8000_CSV\MAG8000_606402H016" 
call mergingcsv.bat   

cd "C:\Users\server\Desktop\MAG8000_CSV\MAG8000_606302H016" 
call mergingcsv2.bat

cd "C:\Users\server\Desktop\MAG8000_CSV\MAG8000_606202H016" 
call mergingcsv3.bat

cd "C:\Users\server\Desktop\MAG8000_CSV\MAG8000_606102H016" 
call mergingcsv4.bat
第一次通话后暂停,我需要点击继续:

如何使其自动化?

1 个答案:

答案 0 :(得分:0)

尝试StartMergingCsv.bat的注释批量代码:

@echo off
rem Store full path of current directory on stack. Might be removed
rem if there is no need to restore the current directory after
rem processing all the batch files for merging CSV files.
pushd

rem For each subdirectory in C:\Users\server\Desktop\MAG8000_CSV
rem check if the subdirectory contains at least 1 mergingcsv*.bat.

rem If this condition is true, change the current directory to the
rem subdirectory containing the mergingcsv*.bat file(s) and call
rem each batch file matching this file name pattern.

for /D %%F in ("C:\Users\server\Desktop\MAG8000_CSV\*") do (
    if exist "%%F\mergingcsv*.bat" (
        cd /D "%%F"
        echo Merging CSV files in directory %%F ...
        for %%B in ("%%F\mergingcsv*.bat") do call "%%B"
    )
)

rem Restore initial current directory from stack. Might be removed, see above.
popd

请勿使用start.bat作为批处理文件的名称,因为 START 是Windows标准命令,您可以使用名为start.bat的批处理文件替换该命令。

批处理文件的每次调用之间都不应该暂停,除了mergingcsv*.bat包含等待按键的 PAUSE 之类的命令。 mergingcsv*.bat也不应包含没有参数/B的命令 EXIT ,否则将退出命令处理器,因此无法返回StartMergingCsv.bat

要了解使用的命令及其工作原理,请打开命令提示符窗口,执行以下命令,并完全阅读为每个命令显示的所有帮助页面。

  • call /?
  • cd /?
  • echo /?
  • for /?
  • if /?
  • pushd /?
  • popd /?
  • rem /?

在命令提示符窗口中运行:

  • exit /?
  • pause /?
  • start /?