一个简单的例子,批处理B可调用A,但我想在程序调用A,请问怎样在程序中传递参数 ?A.bat: 
    if "%1" == "" exit
    echo QQB.bat
    call a.bat 1
    pause我试过用     ShellExecute(Handle,'open','D:\GRUBBG\A.bat','1',nil,SW_SHOW);     WinExec('D:\GRUBBG\A.bat   1',SW_SHOWDEFAULT);但都调用不成功!

解决方案 »

  1.   

    DOS批处理文件支持命令行参数吗?
      

  2.   

    呵呵,经过一夜奋战,我给楼主搞定了:C:\A.bat内容如下:
    if "%1" == "" exit
    echo QQ
    pause然后楼主分别试一下效果:
    ShellExecute(0,'open','a.bat','2','c:\', SW_ShowNormal);//不执行exit
    ShellExecute(0,'open','a.bat','','c:\', SW_ShowNormal);//直接exit
    附:参考资料如下:    HINSTANCE   ShellExecute(   
        
              HWND   hwnd,           //运行的窗口句拼   
              LPCTSTR   lpOperation, //   运行方式   
              LPCTSTR   lpFile, //   文件及路径   
              LPCTSTR   lpParameters, //   参数(一般程序没有)   
              LPCTSTR   lpDirectory, //   默认搜索路径   
              INT   nShowCmd   //   当程序运行后的显示方式   
      )   
            
      1、如果lpFile是一个可执行文件则ShellExecute直接执行它;如果lpFile是一个数据文件,则ShellExecute首先在注册表中查找和这种类型数据文件相关练的可执行文件,如果找到则执行这个可执行文件,否则启动失败,函数返回值为ERROR_FILE_NOT_FOUND   
        
      2、lpParameters是参数,如果lpFile是EXE文件,则参数有用,否则没用。   
        
      3、lpDirectory搜索路经可以不指定。   
          
      4、lpOperation是打开方式,可以为   
          "open",lpFile必须是一个文件   
          "explorer",   lpFile必须是一个文件夹   
          "print"三中类型,lpFile必须是一个文件   
      CmdShow   Long,为窗口指定可视性方面的一个命令。请用下述任何一个常数     
      SW_HIDE   隐藏窗口,活动状态给令一个窗口     
      SW_MINIMIZE   最小化窗口,活动状态给令一个窗口     
      SW_RESTORE   用原来的大小和位置显示一个窗口,同时令其进入活动状态     
      SW_SHOW   用当前的大小和位置显示一个窗口,同时令其进入活动状态     
      SW_SHOWMAXIMIZED   最大化窗口,并将其激活     
      SW_SHOWMINIMIZED   最小化窗口,并将其激活     
      SW_SHOWMINNOACTIVE   最小化一个窗口,同时不改变活动窗口     
      SW_SHOWNA   用当前的大小和位置显示一个窗口,不改变活动窗口     
      SW_SHOWNOACTIVATE   用最近的大小和位置显示一个窗口,同时不改变活动窗口     
      SW_SHOWNORMAL   与SW_RESTORE相同