V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
me2you
V2EX  ›  编程

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

  •  
  •   me2you · 2014-09-05 14:49:35 +08:00 · 3573 次点击
    这是一个创建于 3732 天前的主题,其中的信息可能已经有所发展或是发生改变。
    要求如下:
    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:00 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   ·   实用小工具   ·   1106 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:45 · PVG 07:45 · LAX 15:45 · JFK 18:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.