批量替换文件名

0428更新日志:
1.修改标题
2.修改窗口大小
3.修改提示信息
4..修改替换逻辑

@echo off
setlocal enabledelayedexpansion
mode con cols=100 lines=120
echo 作者:phenix
echo.
echo 邮箱:279682817@qq.com
echo.
echo 替换文件名中的特定字符
echo.
echo 使用方法:1.使用前先备份一份原始数据 2.先查看找到的数据是否满足要求,如果都满足,用全部替换,否则用单个替换
echo.
title 批量替换文件名工具
set /p lujing=请输入路径,比如c:\图片\:
set /p name=请输入要替换的字符值:
set /p fixname=请输入文件类型,直接回车表示任意类型,输入多个用空格分开,比如.txt .jpg:
if "!fixname!" equ "" (
set fixname=.
)
echo 查找到的文件如下,文件名保存在当前目录的"替换文件名列表.txt",查找完毕自动打开,核对无误后下一步操作:
echo.>替换文件名列表.txt
for /f "usebackq tokens=*" %%i in (`dir /s /a-d /b "!lujing!"^|findstr "!name!"^|findstr /r "!fixname!$"`) do (
echo %%i
echo %%i>>替换文件名列表.txt
)
start 替换文件名列表.txt
set /p conf=确认重命名?全部重命名不提示输入1,重命名每个文件提示输入2,不重命名输入3:
if "!conf!" equ "1" (
call :changefile
) else (
if "!conf!" equ "2" (
call :changefile
)
)
echo 完毕!
pause
exit

:changefile
set /p rname=请输入替换成的值,直接回车表示替换为空值:
for /f "usebackq tokens=*" %%k in (`dir /s /b /ad "!lujing!"^&echo !lujing!`) do (
for /f "usebackq tokens=*" %%m in (`dir /b "%%k"^|findstr "!name!"^|findstr /r "!fixname!$"`) do (
set fname=%%m
if "!conf!" equ "1" (
call set "val=%%fname:!name!=!rname!%%"
move /y "%%k\!fname!" "%%k\!val!"
) else (
if "!conf!" equ "2" (
set cfconf=
set /p cfconf=确认重命名!fname!?是输入1,否输入2:
if "!cfconf!" equ "1" (
call set "val1=%%fname:!name!=!rname!%%"
move /y "%%k\!fname!" "%%k\!val1!"
)
)
)
)
)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

humors221

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值