批量修改文件名
具体功能:遍历指定目录下的所有文件,修改该文件为指定名称
使用: 在存放 .exe 文件夹下打开 cmd 窗口,执行命令。示例如下:
renameDirFiles.exe -d "D:\test" -p "java%d"
解释: -d 后跟目录,-p 后跟修改文件名,需要%d--作为编号
- go 代码
文件名:
renameDirFiles.go
package main
import (
"flag"
"fmt"
"os"
"path/filepath"
)
func main() {
// 解析命令行参数
var dir string
flag.StringVar(&dir, "d", "", "directory path")
var pattern string
flag.StringVar(&pattern, "p", "", "name pattern, eg. newname%d")
flag.Parse()
fmt.Sprintln("dir", dir, "pattern",pattern)
if dir == "" || pattern == "" {
flag.Usage()
return
}
// 遍历文件夹,获取文件路径
paths := make([]string, 0)
filepath.Walk(dir, func(path string, info os.FileInfo, err error) error {
if !info.IsDir() {
paths = append(paths, path)
}
return nil
})
// 遍历文件路径,修改文件名
for i, path := range paths {
newPath := filepath.Join(filepath.Dir(path), fmt.Sprintf(pattern, i+1)+filepath.Ext(path))
os.Rename(path, newPath)
}
}
- 将 .go 文件编译成 .exe 可执行文件,命令如下
go build renameDirFiles.go
# ls 查看当前目录下生成 renameDirFiles.exe
- 使用
3.1 使用前目录下文件
3.2 在存放 .exe 文件夹下打开 cmd 窗口,执行 renameDirFiles.exe -d "D:\test" -p "java%d"
命令
3.3 结果