我使用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
第一次通话后暂停,我需要点击继续:
如何使其自动化?
答案 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 /?