• 批处理系列(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许可证)

  • 相关阅读:
    MySQL监控脚本
    django学习笔记【004】创建带有model的app
    MySQL-group-replication 配置
    MySQL配置文件模板
    Python 正则表达式
    MYSQL的安全模式:sql_safe_updates介绍
    Git branch && Git checkout常见用法
    git rebase和git merge的用法
    Git最牛最全详解
    理解npm run
  • 原文地址:https://www.cnblogs.com/daxiang/p/8572658.html
Copyright © 2020-2023  润新知