package main
import (
"fmt"
"io/fs"
"log"
"os"
"path/filepath"
"regexp"
"strconv"
)
func myWalkFunc(path string, info fs.FileInfo, err error) error {
ext := ".rmvb"
if info.IsDir() {
return nil
}
if filepath.Ext(path) != ext {
return nil
}
filename := info.Name()[:len(info.Name())-len(ext)]
re := regexp.MustCompile(`-?[0-9]\d*集`)
strMatch := re.FindString(filename)
if strMatch == "" {
return fmt.Errorf("未找到关键字")
}
log.Printf("file: %v, match: %v, len=%v\n", filename, strMatch, len(strMatch))
strMatch = strMatch[:len(strMatch)-len("集")]
nMatch, err := strconv.Atoi(strMatch)
if err != nil {
return err
}
strNewFileName := fmt.Sprintf("权力的游戏S01EP%02d.%v", nMatch, ext)
log.Printf("match: %v, [%v] => [%v]\n", strMatch, filename, strNewFileName)
os.Rename(info.Name(), strNewFileName)
return nil
}
func main() {
fmt.Println("---------------- 批量修改名称 --------------------")
fmt.Scan()
curdir, err := os.Getwd()
if err != nil {
log.Fatalln(err)
}
err = filepath.Walk(curdir, myWalkFunc)
if err != nil {
log.Fatalln(err)
}
i := 0
fmt.Scan(&i)
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
2020-04-10 掌握基于 JWT 实现的 Token 身份认证
2019-04-10 软件设计师教程(第5版)- 前言和目录
2019-04-10 wireshark抓包分析工具的使用
2019-04-10 Tcpdump抓包工具的使用
2017-04-10 windows下vim中文乱码处理
2017-04-10 CentOS6下Haproxy的安装配置
2017-04-10 haproxy做TCP层的负载均衡