zoukankan      html  css  js  c++  java
  • 批处理系列(4)

    结合本系列文章第一篇,看本文。

    准备一个文本文件,里面是一行行即将要命名的文件名;准备一个要命名的目录文件;
    保存本代码到通过文本内容重命名文件.bat,执行按提示操作。

    @echo off
    @REM @Author: xianghongai@gmail.com
    title 通过文本内容重命名文件  by:小可(xianghongai@gmail.com)
    setlocal EnableDelayedExpansion
    :GTCONTINUE
    cls
    echo 通过文本内容重命名文件
    echo -----------------------------
    set /p importTxt=拖文本文件按Enter键:
    set /p filesPath=拖目录路径按Enter键:
    set i=0
    for /f "usebackq tokens=1 delims==" %%a in (`more /s %importTxt%`) do (
    	set /a i+=1
    	set "author[!i!]=%%a"
    )
    set j=0
    for /f "usebackq" %%b in (`dir /b "%filesPath%*.*"`) do (
    	set /a j+=1
    )
    set k=!i!,!j!
    set nMax=0
    for %%a in (%k%) do (
       if %%~a gtr !nMax! set nMax=%%~a
    )
    rem echo 最大值:!nMax!
    set nMin=!nMax!
    for %%a in (%k%) do (
       if %%~a lss !nMin! set nMin=%%~a
    )
    rem echo 最小值:!nMin!
    
    set c=0
    set FilesExist=0
    echo.
    echo 文件即将按以下格式重命名:
    echo -----------------------------
    for /f "usebackq delims==" %%b in (`dir /a-d /b /on /tc "%filesPath%"`) do (
    	 set /a c+=1
    	 cd /d %filesPath%
    	 if !c! leq !nMin! (
    	 	for %%a in (!c!) do (
    	 		if not exist !author[%%a]!%%~xb (
     				echo "%%b" "!author[%%a]!%%~xb"
     			) else (
    	 			set /a FilesExist+=1
    	 			echo 已有文件 "!author[%%a]!%%~xb"
     			)
    	 	 )
    	 )
    )
    echo -----------------------------
    if !FilesExist! gtr 0 (
    	echo.
    	echo 当前目录有 !FilesExist! 个相同命名的文件,
    	echo 可能会引起文本内容行和对应文件的错位!
    	echo.
    )
    echo 按Enter键确认操作
    pause >nul
    set d=0
    for /f "usebackq delims==" %%b in (`dir /a-d /b /on /tc "%filesPath%"`) do (
    	set /a d+=1
    	cd /d %filesPath%
    	 if !d! leq !nMin! (
    	 	for %%a in (!d!) do ( if not exist "!author[%%a]!%%~xb" ( ren "%%b" "!author[%%a]!%%~xb" ) )
    	 )
    )
    echo 搞定
    pause >nul
    goto GTCONTINUE
    exit
    
    

    转载保留原文地址和作者名,只为错误勘正和信息补充。
    版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)

  • 相关阅读:
    ycsb
    Tikv docker-compose go client
    Raft 协议
    kubectl 命令
    JAVA判断是否是微信内置浏览器,是否是在微信内打开
    IDEA设置默认maven配置
    JAVA中JDK1.8的LocalDateTime日期类的操作方法
    JAVA在JDK1.8中Stream流的使用
    Linux(Centos)部署Jenkins
    Linux(Centos)安装maven
  • 原文地址:https://www.cnblogs.com/daxiang/p/8572658.html
Copyright © 2011-2022 走看看