批量修改图片名称(补充)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
问题描述:文件夹下面的照片格式太乱,要统一改成数字+‘.jpg’的形式,例如:10086.jpg;
处理一:
/view/7b15588bd0d233d4b14e6981.html
在上述网址里,挖了一点代码:
@echo off&setlocal EnableDelayedExpansion
set a=1
for /f "delims=" %%i in ('dir /b *.rm') do (
if not "%%~ni"=="%~n0" (
if !a! LSS 10 (ren "%%i" "b0!a!.rm") else ren "%%i" "b!a!.rm"
set/a a+=1
)
)
修改一下:
@echo off&setlocal EnableDelayedExpansion
set a=1
for /f "delims=" %%i in ('dir /b *.png') do (
if not "%%~ni"=="%~n0" (
ren "%%i" "*.jpg"
set/a a+=1
)
)
这段代码可以实现改文件的后缀名,堪称神器啊!!!
但是,对于文件名中的字母过滤,做不到,需要进一步研究BAT编程,目前没有攻下来!!
同事的解法:
/*
* 功能:将后缀格式化、将文件名中的w的去掉;
* 限制:w都被替换掉了!
*/
@echo off&setlocal EnableDelayedExpansion
set a=1
for /f "delims=" %%i in ('dir /b *.JPG','dir /b *.jpg','dir /b *.png') do (
if not "%%~ni"=="%~n0" (
set "h=%%i"
set "h=!h:w=!"
set "h=!h:.jpg.jpg=.jpg!"
set "h=!h:.png=.jpg!"
set "h=!h:.bmp=.jpg!"
set "h=!h:.JPG=.jpg!"
ren "%%i" "!h!"
set/a a+=1
)
)
处理二:找JAVA
网上搜了一下,稍加修改,可以完全达到要求;
import java.io.*;
public class Rename {
/**
* @param args
* @throws IOException
* D:\\jjjg_photo\\members
* D:\\jjjg_photo\\head\\location
* D:\\jjjg_photo\\head\\outlook
* D:\\jjjg_photo\\fz\\location
* D:\\jjjg_photo\\fz\\outlook
*/
public static void main(String[] args) throws IOException {
// String d="D:\\jjjg_photo\\members";
// String d="D:\\jjjg_photo\\head\\location";
// String d="D:\\jjjg_photo\\head\\outlook";
// String d="D:\\jjjg_photo\\fz\\location";
String d="D:\\jjjg_photo\\fz\\outlook";
File file = new File(d);
File[] files = file.listFiles();
for (int i = 0; i < files.length; i++) {
if(!files[i].isDirectory()){
File f=files[i];
String name=f.getName();
if(name.startsWith("w")){
name=name.replace("w","");
name=name.replace(".png", ".jpg");
name=name.replace(".PNG", ".jpg");
name=name.replace(".JPG", ".jpg");
name=name.replace(".bmp", ".jpg");
name=name.replace(".png.png", ".jpg");
String path=d+"\\"+name;
File f2=new File(path);
boolean fs=f.renameTo(f2);
if(fs){System.out.println("success"+f.getName());}else{System.out.print("failure"+f.getName());} }
}
}
}
}