求各位大神帮忙写个批处理脚本,exe 的也行 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
me2you
V2EX    编程

求各位大神帮忙写个批处理脚本,exe 的也行

  •  
  •   me2you 2014-09-05 14:49:35 +08:00 4053 次点击
    这是一个创建于 4128 天前的主题,其中的信息可能已经有所发展或是发生改变。
    要求如下:
    A/B/C/*.*
    现在在A文件夹中执行可执行程序

    A下有多个文件夹(B的数量>=1),同样,B下有多个C文件夹(C的数量也>=1)

    1.把B中的除文件夹以外的文件,删除掉
    2.把C中的所有文件移动到B中,删除C文件夹(C文件夹已经空了)

    昨天写了个php版本的,因为文件夹数量太大,三层遍历,执行效率很低,求大神出手帮忙~~
    17 条回复    2014-09-06 00:27:59 +08:00
    14
        1
    14  
       2014-09-05 15:09:03 +08:00 via Android
    你在Windows下跑php?
    mahone3297
        2
    mahone3297  
       2014-09-05 15:13:02 +08:00
    不就移动文件,跟php效率低有关系?
    me2you
        3
    me2you  
    OP
       2014-09-05 15:20:50 +08:00
    @mahone3297 循环多 慢啊
    lichao
        4
    lichao  
       2014-09-05 15:24:37 +08:00
    @me2you 这又不是计算密集型的程序,跟语言关系不大。你觉得慢,是因为磁盘 IO 的开销
    binjoo
        5
    binjoo  
       2014-09-05 16:57:47 +08:00
    难道WIN下不能跑PHP?
    20150517
        6
    20150517  
       2014-09-05 17:00:54 +08:00 via Android
    powershell写啊,不难,10到20分钟最多了
    royzheng
        7
    royzheng 
       2014-09-05 17:12:51 +08:00
    exe执行起来很快的 有.net framework可以帮你写一个
    me2you
        8
    me2you  
    OP
       2014-09-05 17:26:13 +08:00
    @14 难道你的win下不能跑???
    me2you
        9
    me2you  
    OP
       2014-09-05 17:28:05 +08:00
    @royzheng 那就麻烦你了 油桶 me2you#wanan.info
    alex321
        10
    alex321  
       2014-09-05 17:32:16 +08:00
    挂载到 linux 下面去 xx?
    royzheng
        11
    royzheng  
       2014-09-05 17:44:25 +08:00
    @me2you 好的 稍等
    ijse
        12
    ijse  
       2014-09-05 17:55:55 +08:00   1
    ```

    @echo off
    for /D %%i in (*) do (
    @echo "Process(B): " %%i
    erase /Q %%i

    cd %%i
    for /D %%j in (*) do (
    @echo "Copy(C): " %%j
    move %%j ..
    )
    cd ..

    @echo "Remove(C)."
    rmdir /Q %%i
    )
    pause
    ```

    试着写了下,应该能用~~
    royzheng
        13
    royzheng  
       2014-09-05 18:07:04 +08:00
    @me2you I'm sorry,快下班了,忘记考虑递归问题,C#里移动整个文件夹覆盖有点问题 你最好还是用批处理好
    14
        14
    14  
       2014-09-05 18:43:24 +08:0 via Android
    @me2you
    @binjoo 我就随手一碎碎念,没有感情色彩。。。只是在潜意识里觉得都是跑着Linux之类平台,仔细想想自己以前玩过XAMPP
    me2you
        15
    me2you  
    OP
       2014-09-06 00:22:56 +08:00
    @14 只是为了把工作的方法简化,所以是在Windows上写的php
    me2you
        16
    me2you  
    OP
       2014-09-06 00:25:58 +08:00
    @ijse 先谢谢你的代码,我刚才测了下,和我说的要求有点出入,C文件夹都还在 而且还被移动到了A文件夹下了,空的C也没删除,有的B文件夹下还有C,并且C中的文件还存在,不过还是得谢谢你的代码
    me2you
        17
    me2you  
    OP
       2014-09-06 00:27:59 +08:00
    @royzheng 我当时PHP测试的时候只测了4个B文件夹和每个B下有3个C,C里面有7到8个文件的情况,用了半分钟差不多,上百个B层文件夹,一多起来就感觉不行了的样子
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1646 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 16:19 PVG 00:19 LAX 08:19 JFK 11:19
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86