这个是DOS内部命令,要用到可执行文件CMD.EXE才能实现这个操作。
如winexec('cmd /c copy c:\a.txt c:\b.txt',sw_hide)

解决方案 »

  1.   

    str='command.com  /c  copy c:\a.txt  c:\b.txt';
    试试!
      

  2.   

    var
      runFile: String;
      SL: TStringList;
    begin
      RunFile := 'DosDos.bat';
      SL := TStringList.Create;
      SL.Add('copy c:\a.txt c:\b.txt');
      SL.SaveToFile(RunFile);
      Shellexecute(handle,nil,pchar(RunFile), nil, nil,SW_HIDE);
      SL.Free;
    end;
      

  3.   

    apple1978的答案就是正确的了,laza你的方法太......
      

  4.   

    我的机上就没 cmd.exe,
    WinExec('command.com  /c  copy c:\a.txt  c:\b.txt',SW_HIDE);
    是正确的;
    再试试
    WinExec('command.com  /c  dir',SW_NORMAL);
      

  5.   

    不同的操作系统可能不一样,CMD.EXE在NT下是对的,COMMAND可能在98下的吧
      

  6.   

    还没完呢就给分了;
    既然WIN98与NT的命令解释器不一样,
    win98: command.com  环境变量Comspec=c:\windows\command.com
    NT与2000:cmd.exe  环境变量 Comspec=c:\nt\system32\cmd.exe就可根据环境变量知道了,通用程序:
    char buf[256]
    GetEnvironmentVariable("Comspec",buf,sizeof(buf));
    String ComStr=String(buf)+" /c  copy abc.txt 123.dat";
    WinExec(ComStr.c_str(),SW_NORMAL);