cd  ..
cd C:\Program Files\MySQL\MySQL Server 5.0\bin
mysql -uroot -pzxy
create database test4;
use test4;
source H:\HI_IMAGE-ACCESS\HIWorkstation_Mysql20080920165845.sql;
这是我自己写的.bat在程序中通过strProcess.Format("cmd.exe /k \H:\\HI_IMAGE-ACCESS\\Debug\\mysqlrestore.bat");  
 
  ::CreateProcess(NULL,(LPSTR)(LPCTSTR)strProcess,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi);
调用cmd,然后执行备份,但是只运行了 
cd  ..
cd C:\Program Files\MySQL\MySQL Server 5.0\bin
mysql -uroot -pzxy
这三句,后便的就不执行了,promot是mysql>还有就是我在cmd下通过mysql -uroot -pzxy 
                  use database test4;
                  source H:\HI_IMAGE-ACCESS\xx.sql;
进行恢复时也有错,怎么解决啊?

解决方案 »

  1.   

    这个方案,有几个地方,需要改进
    bat应该改成:
    cd /d "C:\Program Files\MySQL\MySQL Server 5.0\bin"
    mysql -uroot -pzxy < H:\HI_IMAGE-ACCESS\HIWorkstation_Mysql20080920165845.sql然后再用那个进程调就可以了。
    调用进程时,不要让子进程里再创建一个无法正常结束的子进程,那样就无法完成你想要的任务了。 
      

  2.   

    C:\Program Files\MySQL\MySQL Server 5.0\bin>mysql -uroot -pzxy   0<H:\HI_IMAGE-A
    CCESS\HIWorkstation_Mysql20080920165845.sqlC:\Program Files\MySQL\MySQL Server 5.0\bin>这是调用.bat时cmd里的内容,我怎么能知道恢复是否成功呢?
    还有重定向前怎么有个0 啊,.bat的内容是这样的
    cd ..
    c:
    cd C:\Program Files\MySQL\MySQL Server 5.0\bin/////////////加这句只是为了进入mysql的安装目录,因为我没有设置环境变量
    mysql -uroot -pzxy < H:\HI_IMAGE-ACCESS\HIWorkstation_Mysql20080920165845.sql