缅甸翡翠原石开采现场:批处理、关于拓展名、悬赏分!

来源:百度文库 编辑:高考问答 时间:2024/04/26 06:14:44
请各位大侠帮忙写一个批处理文件.
要求经过我两次输入达到批量修改指定拓展名为某拓展名.

运行后显示如下:
提示 请输入文件路径:

提示 请输入文件现拓展名:
(如输入:txt)

提示 请输入您需要修改的文件拓展名:
(如输入:exe)

请帮忙,不胜感激!!!
很感谢2楼的朋友,辛苦了!
但是我需要的是"一个批处理文件". "*.bat" 的.

所以还是期待..拜托了!
答案出 即赏分!

我给你编:

---复制下面的代码到bat文件运行---

::本批处理由ResHacker制作,使用或复制请保留此信息!
@echo off
title 后缀名批量修改器-Made By ResHacker For 摇曳·叶落

:start
echo.
echo 本批处理可以实现对指定文件夹中指定后缀名文件的后缀名批量修改工作,欢迎使用!
echo 本批处理只是在被指定修改文件末尾添加一个后缀名,例如1.txt会被修改为1.txt.bmp
echo 本批处理不支持含有空格的文件名的更改,否则会出错!
echo.

:d
set /p d=请输入被改名文件所在文件夹完整目录,结尾一定加上“\”,否则程序会出错:
if not exist %d% (
echo.
) && (
echo 对不起!您输入的目标文件夹不存在,请重新输入!
) && (
echo.
) && (
goto d
)

:o
set /p o=请输入旧后缀名,所有该后缀名的文件都会被处理:
if not exist %d%*.%o% (
echo.
) && (
echo 对不起!您输入的文件后缀名不存在或目录结尾没有加“\”,请重新输入!
) && (
echo.
) && (
goto d
)

:n
set /p n=请输入新后缀名,所有旧后缀名的文件都会被修改成该后缀名:

:do
echo 正在处理.....
cd /d %d%
for %%i in (*.%o%) DO (
ren %%i %%i.%n%
)
echo 处理完成!请查看目录 %d% 下的 %n% 文件!
explorer %d%

:over
echo.
echo 任意键返回程序开始或键入 ALT+F4 退出!
pause
cls
goto :start

---复制上面的代码到bat文件运行---

直接修改后缀名比较困难,实现不了,不过增加一个后缀名是可以的,这个代码你可以试试!
不支持带有空格文件名的改名是因为命令行的使用限制。

/***
* com.eshangrao.tools.RenameExts
* @author:feiy
* @email:pubwin@gmail.com
* dispcript:
* 批量转换某一目录下的文件扩展名
* @usage:
* RenameExts 需要更改扩展名的文件目录 原始扩展名 新的扩展名 [是否调试:1/0]
*/
package com.eshangrao.tools;

import java.io.File;

public class RenameExts {

private String orgExt;
private String newExt;
private boolean debug=false;
private int allFileNum;
private int sucFileNum;
private int failFileNum;
public RenameExts(String dir,String orgExt,String newExt,boolean debug){
this.orgExt=orgExt;
this.newExt=newExt;
this.debug=debug;
changeName(dir);
System.out.println("--------------------------------------");
System.out.println("转换扩展名:"+orgExt+"到:"+newExt+"完毕!");
System.out.print(" 需要修改的文件:"+allFileNum);
System.out.println(",成功:"+sucFileNum+",失败:"+failFileNum);
System.out.println("--------------------------------------");
}

private void changeName(String cPath){
File class_path=new File(cPath);
if(class_path.exists() && class_path.isDirectory()){

String[] list=class_path.list();
if(debug)
System.out.println("change to path:"+cPath);
for(int i=0;i<list.length;i++){
String list_item=list[i];
String fileName=class_path.getPath()+File.separator+list_item;
File item=new File(fileName);
if(item.isDirectory())
changeName(fileName);
else{
String[] sp=list_item.split("\\.");
if(sp[1].equals(orgExt)){
allFileNum++;
String newFileName=class_path.getPath()+File.separator+sp[0]+"."+newExt;
boolean result=item.renameTo(new File(newFileName));
if(result)
sucFileNum++;
else
failFileNum++;
if(debug)
System.out.println("rename:"+fileName+" to: "+newFileName+","+result);
}
}
}
}else{
System.out.println("path is not directory");
}
}
public static void main(String[] args) {
if(args.length<3){
System.out.println("usage:");
System.out.println("RenameExts 需要更改扩展名的文件目录 原始扩展名 新的扩展名 [是否调试:1/0]");
System.exit(-1);
}else{

File path=new File(args[0]);
if(path.exists() && path.isDirectory()){
if(args.length>=4){
new RenameExts(args[0],args[1],args[2],args[3].equals("1"));
}else{
new RenameExts(args[0],args[1],args[2],false);
}
}else{
System.out.println("文件夹不存在或不是文件夹,请检查输入参数1");
System.exit(-1);
}
}

}

}

以上是JAVA的批处理修改文件的代码.另外,在网上有一些软件可以做到批理的修改,不论是文件名字还是文件的扩展名,如:文件批量更名大师,拖把更名器等.

非要写批处理吗?现成的工具不行?