all:='cmd.exe /c xcopy ' +str_temp +' d:\abc\ /s /y &&echo ok>d:\abc\ok.txt';
m_Result:=GetLogicalDriveStrings(MAX_PATH,buf);
   for i:=1 to (m_Result div 4) do
   begin
        str_temp:=string(buf[i*4]+buf[i*4+1]+buf[i*4+2]);         if getdrivetype(pchar(str_temp)) = DRIVE_REMOVABLE  then
         begin
                     winexec(pchar(all),sw_hide)  ;
         end;
   end;str_temp 这个是获得优盘盘符的变量,不知道这个怎么个意思?请问dos怎么调用delphi的变量

解决方案 »

  1.   

    调用 cmd.exe ,后面是命令行参数
      

  2.   

    'cmd.exe /c + dos命令'  这是个delphi调用dos命令的格式这里不是dos调用delphi的变量, 是组合一个dos命令字符串
      

  3.   

    dos命令楼上都已经解释了,我来解释其它的;GetLogicalDriveStrings是获取系统中所有的逻辑驱动器,如硬盘,軟盘,移动硬盘,光盘
    返回的缓冲区结果是这样的A:\ C:\ D:\ 中间有个空格,所有每个驱动器占 4 字节
    即循环(m_Result div 4)次,再分隔取出字符,就得到对应的驱动器盘符了GetDriveType就是判断驱动器类型,结果有很多种,比如
    DRIVE_CDROM:光盘,
    DRIVE_FIXED:本地硬盘
    DRIVE_NO_ROOT_DIR:可移动磁盘
    DRIVE_REMOVABLE:软盘
    ...