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许可证)

  • 相关阅读:
    Web应用指纹识别
    同步I/O 和 异步I/O
    怎样找出自己定义标签的java类
    Android多线程文件下载器
    cocos2d-x 3.0游戏实例学习笔记 《跑酷》 第三步---主角开跑&同一时候带着刚体
    记C++课程设计--学生信息管理系统
    iOS开发--从TQRichTextViewDemo中学会分析project
    九度oj题目&吉大考研10年机试题全解
    setOnFocusChangeListener的使用
    查看网络port占用
  • 原文地址:https://www.cnblogs.com/daxiang/p/8572658.html
Copyright © 2011-2022 走看看