吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2605|回复: 3
收起左侧

[其他转载] 批量替换文件名中指定字符串

  [复制链接]
leonca 发表于 2020-10-23 21:14
这段代码也是很成熟的一段代码,自己没事的时候,偶尔会写一些这样的小脚本

这段批处理不需要指定文件类型,也就是会处理当前目录中的所有文件,包含文件夹
[Bash shell] 纯文本查看 复制代码
@echo off
title 批量替换文件(夹)名的部分字符串
echo.
echo 本批处理可批量替换文件名中部分字符串,不处理子目录
echo.
:AA
set str=%~dp0
set /p "str=输入路径(直接回车,则默认批处理所在路径):"
cd /d "%str%"
echo. &echo 当前路径为 %str%
:S
setlocal enabledelayedexpansion
echo. & echo 当要替换的文件输入为*A这种形式,且替换为空时,会自动删除字符A以前的所有字符(包含字符A)
echo.&set /p strtemp1= 请输入要替换的文件(文件夹)名字符串(可替换空格):
echo.&set /p strtemp2= 请输入替换后的文件(文件夹)名字符串(删除,则直接回车):
echo.
echo 正在修改文件(夹)名中请稍候……
for /f "delims=" %%i in ('dir /a /b') do (
set "f=%%~ni" ::将变量i扩展到文件名和后缀,并赋值给f
set "k=%%~xi"
set "f1=!f:%strtemp1%=%strtemp2%!" ::将f中的字符串1替换成字符串2,并赋值给f1
if not "%%i"==%0 ( 
if not "!f!!k!"=="!f1!!k!" (
if exist "!f1!!k!" (
echo 由于!f1!!k!存在同名,!f!!k! 文件名未改 ) else ren "!f!!k!" "!f1!!k!" 
) 
)
)
echo.
echo 替换完成。。。。。。
endlocal ::结束变量延迟
echo.
echo ===========================================================
echo.& echo 【1】……更换路径
echo.& echo 【2】……继续在当前目录替换
echo.
set /p "xuan= 请选择【1】或【2】:"
echo.
if %xuan% equ 1 goto AA else(
    if %xuan% equ 2 goto S
)
echo.&pause


下面这段代码会提示你要操作的文件类型,例如mp4
[Bash shell] 纯文本查看 复制代码
@echo off
title 批量替换文件(夹)名的部分字符串
echo.
echo 本批处理可批量替换文件名中部分字符串,不处理子目录
echo.
:AA
set str=%~dp0
set /p "str=输入路径(直接回车,则默认批处理所在路径):"
cd /d "%str%"
echo. &echo 当前路径为 %str%
:S
setlocal enabledelayedexpansion
echo.&set /p strtemp3= 请输入要替换的文件类型(例如*.mp4):
echo. & echo 当要替换的文件输入为*A这种形式,且替换为空时,会自动删除字符A以前的所有字符(包含字符A)
echo.&set /p strtemp1= 请输入要替换的文件(文件夹)名字符串(可替换空格):
echo.&set /p strtemp2= 请输入替换后的文件(文件夹)名字符串(删除,则直接回车):
echo.
echo 正在修改文件(夹)名中请稍候……
for /f "delims=" %%i in ('dir /a /b %strtemp3%') do (
set "f=%%~ni" ::将变量i扩展到文件名和后缀,并赋值给f
set "k=%%~xi"
set "f1=!f:%strtemp1%=%strtemp2%!" ::将f中的字符串1替换成字符串2,并赋值给f1
if not "%%i"==%0 ( 
if not "!f!!k!"=="!f1!!k!" (
if exist "!f1!!k!" (
echo 由于!f1!!k!存在同名,!f!!k! 文件名未改 ) else ren "!f!!k!" "!f1!!k!" 
) 
)
)
echo.
echo 替换完成。。。。。。
endlocal ::结束变量延迟
echo.
echo ===========================================================
echo.& echo 【1】……更换路径
echo.& echo 【2】……继续在当前目录替换
echo.
set /p "xuan= 请选择【1】或【2】:"
echo.
if %xuan% equ 1 goto AA else(
    if %xuan% equ 2 goto S
)
echo.&pause


好用的话,麻烦点一下免费评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Natu 发表于 2020-10-24 00:40
向楼主的学习精神致敬!
leon406 发表于 2020-10-24 15:47
JaKin 发表于 2021-1-5 12:54
本帖最后由 JaKin 于 2021-1-5 13:08 编辑

老哥,好给力!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-29 12:16

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表