none
createprocess运行BAT文件 RRS feed

  • 问题

  • 我在DOS提示符下运行MM.BAT运行成功,生成两个有内容的DAT文件,用C语言调用Createprocess函数执行MM.BAT的时候发现生成两个空文件:

    STARTUPINFO si;
    PROCESS_INFORMATION pi;
    si.dwFlags = STARTF_USESHOWWINDOW;
    si.wShowWindow = SW_HIDE;
    si.cb = sizeof(si);
    ZeroMemory(&si, sizeof(si));
    CreateProcess("mm.bat", NULL,NULL,NULL,FALSE,CREATE_NO_WINDOW,NULL,NULL,&si,&pi);
    WaitForSingleObject(pi.hProcess, INFINITE);

    2013年6月3日 9:48

全部回复

  • mm.bat:

    sed "s/feaf/feawc23/" C:\DLNAME1/feaw.dat>D:\car/feaw.dat
    sed "s/feaf/feawc23/" C:\DLNAME1/feaw2.dat>D:\car/feaw2.dat

    2013年6月3日 9:48
  • 你需要用管道读取

    可以参考

    http://blog.csdn.net/vonger/article/details/5453711


    0xDEADBEEF

    2013年6月4日 6:17
    版主
  • int CreateProcessWithPipe(char* szCmdLine, CPWP_STRUCT* pcs)

    这个函数怎么调用?

    CreateProcessWithPipe("sed \"s/feaf/feawc23/\" C:\DLNAME1/feaw.dat>D:\car/feaw.dat,"&cs)

    2013年6月5日 5:01