Last active
September 7, 2017 01:34
-
-
Save liuxd/7c537d72df29390b16af to your computer and use it in GitHub Desktop.
[mass-rename.rb] Mass rename files in Ruby.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env ruby | |
# | |
# mass rename | |
# | |
# Old | |
#$ tree | |
#. | |
#├── 3DS《火焰之紋章if》壁紙補完① | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\261\332\274\210\321a\315\352_201573192919.JPG | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\261\332\274\210\321a\315\352_201573192927.JPG | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\261\332\274\210\321a\315\352_201573192944.JPG | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\261\332\274\210\321a\315\352_201573192952.JPG | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\261\332\274\210\321a\315\352_201573192959.JPG | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\261\332\274\210\321a\315\352_20157319299.JPG | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\261\332\274\210\321a\315\352_201573193015.JPG | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\261\332\274\210\321a\315\352_201573193028.JPG | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\261\332\274\210\321a\315\352_201573193037.JPG | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\261\332\274\210\321a\315\352_20157319316.JPG | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\261\332\274\210\321a\315\352_20157319324.JPG | |
#│ └── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\261\332\274\210\321a\315\352_20157319330.JPG | |
#├── 3DS《火焰之紋章if》壁紙補完② | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\261\332\274\210\321a\315\352_201573193051.JPG | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\261\332\274\210\321a\315\352_201573193139.JPG | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\261\332\274\210\321a\315\352_201573193148.JPG | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\261\332\274\210\321a\315\352_201573193157.JPG | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\261\332\274\210\321a\315\352_201573193215.JPG | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\261\332\274\210\321a\315\352_201573193226.JPG | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\261\332\274\210\321a\315\352_201573193233.JPG | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\261\332\274\210\321a\315\352_201573193245.JPG | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\261\332\274\210\321a\315\352_201573193251.JPG | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\261\332\274\210\321a\315\352_201573193315.JPG | |
#│ └── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\261\332\274\210\321a\315\352_201573193333.JPG | |
#├── 3DS《火焰之紋章if》主題壁紙第①部分 | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\326\367\356}\261\332\274\21001.jpg | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\326\367\356}\261\332\274\21002.jpg | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\326\367\356}\261\332\274\21003.jpg | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\326\367\356}\261\332\274\21004.jpg | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\326\367\356}\261\332\274\21005.jpg | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\326\367\356}\261\332\274\21006.jpg | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\326\367\356}\261\332\274\21007.jpg | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\326\367\356}\261\332\274\21008.jpg | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\326\367\356}\261\332\274\21009.jpg | |
#│ └── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\326\367\356}\261\332\274\21010.jpg | |
#├── 3DS《火焰之紋章if》主題壁紙第②部分 | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\326\367\356}\261\332\274\21011.jpg | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\326\367\356}\261\332\274\21012.jpg | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\326\367\356}\261\332\274\21013.jpg | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\326\367\356}\261\332\274\21014.jpg | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\326\367\356}\261\332\274\21015.jpg | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\326\367\356}\261\332\274\21016.jpg | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\326\367\356}\261\332\274\21017.jpg | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\326\367\356}\261\332\274\21018.jpg | |
#│ ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\326\367\356}\261\332\274\21019.jpg | |
#│ └── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\326\367\356}\261\332\274\21020.jpg | |
#└── 3DS《火焰之紋章if》主題壁紙第③部分 | |
# ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\326\367\356}\261\332\274\21021.jpg | |
# ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\326\367\356}\261\332\274\21022.jpg | |
# ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\326\367\356}\261\332\274\21023.jpg | |
# ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\326\367\356}\261\332\274\21024.jpg | |
# ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\326\367\356}\261\332\274\21025.jpg | |
# ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\326\367\356}\261\332\274\21026.jpg | |
# ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\326\367\356}\261\332\274\21027.jpg | |
# ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\326\367\356}\261\332\274\21028.jpg | |
# ├── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\326\367\356}\261\332\274\21029.jpg | |
# └── 3DS\241\266\273\360\321\346\326\256\274y\325\302if\241\267\326\367\356}\261\332\274\21030.jpg | |
# | |
#5 directories, 53 files | |
# | |
# New | |
#$ tree | |
#. | |
#├── 3DS《火焰之紋章if》壁紙補完① | |
#│ ├── 352_201573192919.JPG | |
#│ ├── 352_201573192927.JPG | |
#│ ├── 352_201573192944.JPG | |
#│ ├── 352_201573192952.JPG | |
#│ ├── 352_201573192959.JPG | |
#│ ├── 352_20157319299.JPG | |
#│ ├── 352_201573193015.JPG | |
#│ ├── 352_201573193028.JPG | |
#│ ├── 352_201573193037.JPG | |
#│ ├── 352_20157319316.JPG | |
#│ ├── 352_20157319324.JPG | |
#│ └── 352_20157319330.JPG | |
#├── 3DS《火焰之紋章if》壁紙補完② | |
#│ ├── 352_201573193051.JPG | |
#│ ├── 352_201573193139.JPG | |
#│ ├── 352_201573193148.JPG | |
#│ ├── 352_201573193157.JPG | |
#│ ├── 352_201573193215.JPG | |
#│ ├── 352_201573193226.JPG | |
#│ ├── 352_201573193233.JPG | |
#│ ├── 352_201573193245.JPG | |
#│ ├── 352_201573193251.JPG | |
#│ ├── 352_201573193315.JPG | |
#│ └── 352_201573193333.JPG | |
#├── 3DS《火焰之紋章if》主題壁紙第①部分 | |
#│ ├── 21001.jpg | |
#│ ├── 21002.jpg | |
#│ ├── 21003.jpg | |
#│ ├── 21004.jpg | |
#│ ├── 21005.jpg | |
#│ ├── 21006.jpg | |
#│ ├── 21007.jpg | |
#│ ├── 21008.jpg | |
#│ ├── 21009.jpg | |
#│ └── 21010.jpg | |
#├── 3DS《火焰之紋章if》主題壁紙第②部分 | |
#│ ├── 21011.jpg | |
#│ ├── 21012.jpg | |
#│ ├── 21013.jpg | |
#│ ├── 21014.jpg | |
#│ ├── 21015.jpg | |
#│ ├── 21016.jpg | |
#│ ├── 21017.jpg | |
#│ ├── 21018.jpg | |
#│ ├── 21019.jpg | |
#│ └── 21020.jpg | |
#└── 3DS《火焰之紋章if》主題壁紙第③部分 | |
# ├── 21021.jpg | |
# ├── 21022.jpg | |
# ├── 21023.jpg | |
# ├── 21024.jpg | |
# ├── 21025.jpg | |
# ├── 21026.jpg | |
# ├── 21027.jpg | |
# ├── 21028.jpg | |
# ├── 21029.jpg | |
# └── 21030.jpg | |
#5 directories, 53 files | |
path = '3DS《火焰之紋章if》主題壁紙' | |
Dir.foreach(path) do |folder| | |
if folder[0] == '.' | |
next | |
end | |
sub = path + '/' + folder | |
Dir.foreach(sub) do |file| | |
if file[0] == '.' | |
next | |
end | |
old_file = sub + '/' + file | |
new_file = sub + '/' + file.split('\\')[-1] | |
File.rename old_file, new_file | |
end | |
end | |
# end of this file |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment