我有如下cmd语句需要执行,但是不知如何能执行完一条后,第二条再开始。
        m:='/k copy '+m+' '+n+' && d:';
        ShellExecute(handle,'open','cmd.exe',pchar(m),nil,SW_SHOWNORMAL);
        m:='/k cd 新建文件夹\btorrenttracker\BitTorrent-3.2.1b';
        ShellExecute(handle,'open','cmd.exe',pchar(m),nil,SW_SHOWNORMAL);
        m:='/k python btmakemetafile.py '+n+' http://10.1.90.251:6969/announce';
        ShellExecute(handle,'open','cmd.exe',pchar(m),nil,SW_SHOWNORMAL);
        m:='/k copy '+p+' '+q+' && del '+p;
        ShellExecute(handle,'open','cmd.exe',pchar(m),nil,SW_SHOWNORMAL);
我用了try finally 、try except但都没有效果,望各位大虾能帮忙看看该怎么办~~~多谢

解决方案 »

  1.   

    现在是这样的,我的四条语句分别用来从源copy文件到本地,进入本地的bt软件目录,生成种子文件,将种子文件移动至另一目录。但是由于copy的时间不确定,因此当正在copy的过程中,第二条语句可能就开始执行了,于是发现找不到需要作种子的文件,就会报错。后几条语句也可能有类似的情况发生,所以我希望等每一条语句执行完再执行下一条语句。
    楼上的大虾说的我不是很理解是什么意思,愿闻其详
      

  2.   

    生成一个bat文件来执行也就是说在同一个cmd窗口内,它就会按顺序执行了
      

  3.   

    我曾把这些语句连起来,如下所示
    m:='/k copy '+m+' '+n+' && d: && cd 新建文件夹\btorrenttracker\BitTorrent-3.2.1b && python btmakemetafile.py '+n+' http://10.1.90.251:6969/announce && copy '+p+' '+q+' && del '+p;
    ShellExecute(handle,'open','cmd.exe',pchar(m),nil,SW_SHOWNORMAL);
    但执行的结果极其离奇,不论是我的目标文件还是源文件的路径再执行的时候,斜杠字符“\”都回莫名其妙的消失,我用F7单步执行,发现所有变量均正常,且能正确传入shellexecute中。但是执行时,就无法正确进行。本来我也没发现这个问题,这个小程序我连了个数据库,在查看数据库时无意发现插入数据(变量n)的串里竟然都没有“\”字符,不知是不是由于串过长,在命令行里不能正确操作,因此才想把它拆开。然后按顺序执行
      

  4.   

    DOS不熟悉的缘故吧
    用.BAT或者.CMD吧
      

  5.   

    问题解决了,原因是在执行cmd的时候,文件夹的路径会莫名其妙的发生变化,cmd默认的一般是c:\documentandsettings\administrator,然而程序一运行,这个路径就变了,进入d:\的时候也是如此,因此我改为 m:='/k copy '+m+' '+n+' && d: && cd\'....之后就不出错了。至于那个"\"的问题,是由于mysql对特殊字符的处理,把它改成双斜杠就好了。
    多谢楼上几位的回复,散分。