go 批量修改文件名

554 阅读1分钟

批量修改文件名

具体功能:遍历指定目录下的所有文件,修改该文件为指定名称

使用: 在存放 .exe 文件夹下打开 cmd 窗口,执行命令。示例如下:

renameDirFiles.exe -d "D:\test" -p "java%d"

解释: -d 后跟目录,-p 后跟修改文件名,需要%d--作为编号

  1. 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)
	}
}
  1. 将 .go 文件编译成 .exe 可执行文件,命令如下
go build renameDirFiles.go

# ls 查看当前目录下生成 renameDirFiles.exe

image.png

  1. 使用

3.1 使用前目录下文件

image.png

3.2 在存放 .exe 文件夹下打开 cmd 窗口,执行 renameDirFiles.exe -d "D:\test" -p "java%d" 命令

image.png

3.3 结果

image.png