V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
tyhunter
V2EX  ›  问与答

请教下这种场景怎么实现批量重命名的问题

  •  
  •   tyhunter · 2021-10-20 18:13:44 +08:00 · 941 次点击
    这是一个创建于 1139 天前的主题,其中的信息可能已经有所发展或是发生改变。
    大概有 3K 的文件夹,文件夹名称不一样,但每个文件夹下面各有一个 1.mkv 的文件
    结构大概如下:
    文件夹
    - A
    - 1.mkv
    - B
    - 1.mkv
    - C
    - 1.mkv


    现在想让每个文件夹下面的 1.mkv 重命名为文件夹的名称,即文件夹 A 下面的 1.mkv 重命名为 A.mkv ,同时批量操作 3K 个任务,想知道怎么实现会方便一点
    第 1 条附言  ·  2021-10-20 18:52:53 +08:00
    用 XYexploer 解决了,在所有文件夹界面运行如下脚本
    setting "BackgroundFileOps", 0;
    $list = "";
    foreach($file, folderreport("files", "r", , "r", , "<crlf>"), "<crlf>") {
    $newName = replace(gettoken($file, -2, "\"), ":") . "." . getpathcomponent($file, "ext");
    $newName = renameitem($newName, $file, , "-01");
    if ($newName) { $list = $list . "Src: $file<tab 2>Dst: $newName<crlf>"; }
    }
    text $list;
    4 条回复    2021-10-21 01:50:12 +08:00
    eason1874
        1
    eason1874  
       2021-10-20 18:17:55 +08:00
    用啥都方便,shell 、批处理、甚至是 PHP 都行,PHP 用迭代器遍历文件也是很快的
    NillSpake
        2
    NillSpake  
       2021-10-20 18:19:09 +08:00
    python rename 直接撸
    sutra
        3
    sutra  
       2021-10-20 18:19:55 +08:00   ❤️ 2
    find . -name '1.mkv' | awk -F '/' '{system("mv "$2"/"$3" "$2"/"$2".mkv")}'
    luckyx
        4
    luckyx  
       2021-10-21 01:50:12 +08:00
    for folder in `ls`
    do
    cd $folder
    cp 1.mkv A.mkv
    rm 1.kmv
    cd ..
    done
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3424 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 11:50 · PVG 19:50 · LAX 03:50 · JFK 06:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.