java main主方法类生成class文件如何运行在windows的dos窗口中

前文:这几天帮助妹子用各种工具批量处理了文件夹的名字,由于时间比较急,来不及写代码处理,就用基本的dos命令结合excel还有Nodpad++工具给解决了,需求就是把文件夹的名字,例如:张三110322199911112222更改为110322199911112222张三。

头一次帮妹子平事,让我感觉敲代码还是有点用的。。。

基础正文开始:

dir D:\a\b.txt /b > D:\name.txt

dir [你的路径 ] /b >[你指的路径下所有的文件包含文件夹的名输出到当前路径]

此时的name.txt中已经有你所有的文件(夹)名称了,复制到excel中分列,会把中文跟数据分成两列;此时再用excel公式 =[列1]&[列2],成功颠倒中文跟数字;

最后一个dos重命名文件命令:
ren D:\a\b.txt c.txt

ren [指定更改文件路径] [新的名字]

以上是紧急时候的操作,接下来用java写了一个demo,缺点是需要装一个jdk。。。

1、简单的文件流处理重命名,注释少不懂自行百度;

package main.file.rename.lyt;

import java.io.File;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ReFileName {

    public static void main(String[] args) {
        System.out.println("输入更改文件根目录:");
        Scanner input = new Scanner(System.in);
        //接受String类型
        String filePath = input.next();
        //输出结果
        System.out.println("你输入的文件根为目录:"+ filePath);
        System.out.println("开始更改文件名......");
        File file = new File(filePath);
        File[] list = file.listFiles();
        // 如果目录下文件存在
        if (file.exists() && file.isDirectory()){
            for (int i = 0; i < list.length; i++){
                String fileName = list[i].getName();
                int indexNum = findFirstIndexNumberOfStr(fileName);
                if(indexNum != -1){
                    String arr[] = new String[2];
                    arr[0] = fileName.substring(indexNum,fileName.length());
                    arr[1] = fileName.substring(0,indexNum);
                    String newFileName = arr[0]+arr[1];
                    File dest = new File(filePath + "/" + newFileName);
                    list[i].renameTo(dest);
                    System.out.println("文件:【"+fileName+"】更改为:【"+dest.getName()+"】");
                }else{
                    System.err.println("文件中没有数字:"+fileName);
                }
            }
        }
        System.out.println("更改文件名成功结束!!!!!!");
    }

    /**
     * 查询字符串中首个数字出现的位置
     * @param str 查询的字符串
     * @return 若存在,返回位置索引,否则返回-1;
     */
    public static int findFirstIndexNumberOfStr(String str){
        int i = -1;
        Matcher matcher = Pattern.compile("[0-9]").matcher(str);
        if(matcher.find()) {
            i = matcher.start();
        }
        return i;
    }

}

2、此处注意两点:cd命令需要指到你类上包以上的路径,java命令需要加上类名上对应的包名,保存为bat文件类型;

@echo off
%~d1
cd G:\hanjqReFileName\
java main.file.rename.lyt.ReFileName
pause

示例:

编译java文件为class字节码文件时可能遇到错误:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值