有两个批处理文件放在同一目录下:文件一(main.bat)内容为:
---------------------------------------
for /D %%d in (*) do call sub.bat %%d 
---------------------------------------文件二(sub.bat)内容为:
---------------------------------------
echo "   当前选手:  %1  "
  for %%p in (%1\*.pas) do fpc %%p
  for %%c in (%1\*.cpp ) do  g++ %%c -o %1\%%~nc.exe
  for %%c in (%1\*.c) do gcc %%c -o %1\%%~nc.exe
---------------------------------------执行main.bat后会调用sub.bat,对该当前目录下所有子目录中的c、c++、pascal源文件进行编译,并生成同名的可执行文件。
(fpc、g++、gcc为编译命令,需要安装相应的编译器)图例:
c:\
  ----main.bat
  ----sub.bat
  ----选手1(文件夹)
      ----test1.c
      ----test2.cpp
      ----test3.pas
  ----选手2(文件夹)
      ----....
      ----....当执行完批处理后:
c:\
  ----main.bat
  ----sub.bat
  ----选手1(文件夹)
      ----test1.c
      ----test2.cpp
      ----test3.pas
      ----test1.exe
      ----test2.exe
      ----test3.exe
  ----选手2(文件夹)
      ----....
      ----....现在的问题:
在vb中同步执行main.bat发现,main.bat调用sub.bat时出现问题,命令行提示:sub.bat不是内部或外部命令,也不是批处理文件。
而手工双击执行main.bat可以实现。我希望大家帮忙的是:
如何将这两个批处理文件合并成一个批处理文件呢?(这样,就不会出现上述的麻烦了)恳切希望不要嫌我罗嗦,帮个忙,解决一下,不胜感激~~
  

解决方案 »

  1.   

    //现在的问题:
    在vb中同步执行main.bat发现,main.bat调用sub.bat时出现问题,命令行提示:sub.bat不是内部或外部命令,也不是批处理文件。
    而手工双击执行main.bat可以实现。这个你用ShellExecute试试:
    Option Explicit
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPrivate Sub Command1_Click()
        ShellExecute Me.hwnd, "open", "c:\main.bat", vbNullString, vbNullString, 1
    End Sub
      

  2.   

    嗯~报错,一样的,说sub.bat不是内部或外部命令,也不是批处理文件。其实我换个方法也可以,遍历所有的选手文件夹,在每个文件夹下执行sub.bat就是了。'--------
    可是我还是想弄清楚这两个bat怎么并成一个。
    就是for的嵌套。批处理的东西我很少接触。
    '--------
      

  3.   

    搞定了,没有换方法,还是原来的方法:直接调用main.bat问题原因。。
    一切都在那个,,那个。。chDir~~~~
    用shell、ShellExecute、或者是同步执行的ShellWait(这个是自编的)一定要记得加chDir切换目录
      

  4.   

    //一切都在那个,,那个。。chDir~~~~
    呵呵你用ShellExecute的时候,指明lpDirectory参数试试
      

  5.   

    今天逛了一下午的街,累`~~~
    先把帐结了,呵呵~~//老板。。可打折啊?hoho  ;)