!
也想出现在这里? 联系我们
广告位
当前位置:首页>教程分享>服务器教程>云服务器Windows批量修改文件名bat代码

云服务器Windows批量修改文件名bat代码

有时候文件名很长,文件又比较多,一个个修改起来很费劲,有没有好的方式推荐,当然有了,我们可以选择chb renamer软件,也可以用bat批处理来处理修改文件名!第一种软件方式(chb renamer)我们之前有做专门介绍,今天不在赘述,我们今天主要说下bat批处理方式来实现Windows下如何批量修改文件名!

@echo off
title 批量删除文件名部分字符串
echo 本批处理仅处理一级目录,不处理二级目录
:MM
echo -----------------------------------------------------------------------
echo. & echo 【1】从第n位开始保留m位,其余字符串删除,请输入1
echo. & echo 【2】从第n位开始删除m位,其余字符串保留,请输入2
echo. & echo 【3】删除后面m位,前面字符串保留,请输入3
echo. & echo 【4】删除前面n位,后面字符串保留,请输入4
echo. & echo 【5】删除文件名特定字符之间的字符串,特定字符也一起删除,请输入5
echo. & echo 【6】仅保留特定字符之间的字符串作为文件名,其它字符删除,请输入6
echo. & echo 【7】仅保留特定字符和特定字符之间的字符串作为文件名,其它字符删除,请输入7
echo -----------------------------------------------------------------------
echo. & set /p \"stt=请根据需要的功能,输入相应的标号:\"
 
if %stt% equ 1 goto AA
if %stt% equ 2 goto BB
if %stt% equ 3 goto CC
if %stt% equ 4 goto DD
if %stt% equ 5 goto EE
if %stt% equ 6 goto FF
if %stt% equ 7 goto GG
 
:AA
echo. & echo 您选择的是:从第n位开始保留m位,其余字符串删除
set \"str=%~dp0\"
echo. & set /p \"str=请输入目录(直接回车,默认批处理所在目录):\"
echo. & set /p \"tp=请输入文件类型(例如文本类型:*.txt):\"
cd /d \"%str%\"
echo. & echo 下面输入的数字必须是正数,否则可能出错
echo. & set /p \"n=请输入从第几个字符开始:\"
set /a \"n=%n%-1\"
echo. & set /p \"m=请输入要保留的字符个数:\"
for /f \"delims=\" %%i in (\'dir /b %tp%\') do (
setlocal enabledelayedexpansion
set \"var=%%~ni\"
set \"vam=%%~xi\"
set \"var1=!var:~%n%,%m%!
ren \"%%i\" \"!var1!!vam!\"
setlocal disabledelayedexpansion
)
echo. & echo 已完成。。。。
goto MM
 
:BB
echo. & echo 您选择的是:从第n位开始删除m位,其余字符串保留
set \"str=%~dp0\"
echo. & set /p \"str=请输入目录(直接回车,默认批处理所在目录):\"
echo. & set /p \"tp=请输入文件类型(例如文本类型:*.txt):\"
cd /d \"%str%\"
echo. & echo 下面输入的数字必须是正数,否则可能出错
echo. & set /p \"n=请输入从第几个字符开始删除:\"
set /a \"n=%n%-1\"
echo. & set /p \"m=请输入要删除的字符个数:\"
set /a \"mm=%n%+%m%\"
for /f \"delims=\" %%i in (\'dir /b %tp%\') do (
setlocal enabledelayedexpansion
set \"var=%%~ni\"
set \"vam=%%~xi\"
set \"var1=!var:~,%n%!
set \"var2=!var:~%mm%!
ren \"%%i\" \"!var1!!var2!!vam!\"
setlocal disabledelayedexpansion
)
echo. & echo 已完成。。。。
goto MM
 
:CC
echo. & echo 您选择的是:删除后面m位,前面字符串保留
set \"str=%~dp0\"
echo. & set /p \"str=请输入目录(直接回车,默认批处理所在目录):\"
echo. & set /p \"tp=请输入文件类型(例如文本类型:*.txt):\"
cd /d \"%str%\"
echo. & echo 下面输入的数字必须是正数,否则可能出错
echo. & set /p \"m=删除后面的几位,请输入要删除的字符个数:\"
for /f \"delims=\" %%i in (\'dir /b %tp%\') do (
setlocal enabledelayedexpansion
set \"var=%%~ni\"
set \"vam=%%~xi\"
set \"var1=!var:~,-%m%!
ren \"%%i\" \"!var1!!vam!\"
setlocal disabledelayedexpansion
)
echo. & echo 已完成。。。。
goto MM
 
:DD
echo. & echo 您选择的是:删除前面n位,后面字符串保留
set \"str=%~dp0\"
echo. & set /p \"str=请输入目录(直接回车,默认批处理所在目录):\"
echo. & set /p \"tp=请输入文件类型(例如文本类型:*.txt):\"
cd /d \"%str%\"
echo. & echo 下面输入的数字必须是正数,否则可能出错
echo. & set /p \"n=删除前面的几位,请输入要删除的字符个数:\"
for /f \"delims=\" %%i in (\'dir /b %tp%\') do (
setlocal enabledelayedexpansion
set \"var=%%~ni\"
set \"vam=%%~xi\"
set \"var1=!var:~%n%!
ren \"%%i\" \"!var1!!vam!\"
setlocal disabledelayedexpansion
)
echo. & echo 已完成。。。。
goto MM
 
:EE
echo. & echo 您选择的是:批量删除文件名特定字符之间的字符串(包括特定字符也一起删除)
echo. & echo 仅处理一级目录,不处理二级目录
set str=%~dp0
echo. & set /p \"str=请输入文件所在路径,直接回车则默认批处理所在目录:\"
echo. & set /p \"lap=请输入文件类型(例如:*.txt):\"
echo. & set /p \"str1=请输入开始的字符:\"
echo. & set /p \"str2=请输入结束的字符:\"
cd /d %str%
for /f \"delims=\" %%a in (\'dir /b %lap%\') do (
    set stn=%%~na
    setlocal enabledelayedexpansion
    for /f \"tokens=1,3 delims=%str1%%str2%\" %%i in (\"!stn!\") do (
    set \"tm1=%%i\"
    set \"tm2=%%j\"
        if \"!tm1!!tm2!\" EQU \"\" (
            echo. & echo 您输入的开始字符是字符串的第一个字符,输入的结束字符是字符串的最后一个字符,请不要这样输入
        ) 
        if \"!tm1!!tm2!\" NEQ \"!stn!\" (
        ren \"%%a\" \"!tm1!!tm2!%%~xa\"
        )
    )
    endlocal
)
echo. & echo 已完成。。。。
goto MM
 
:FF
echo. & echo 您选择的是:批量修改文件名,仅保留特定字符之间的字符串为名字,其它字符串删除,特定字符也一并删除
echo. & echo 本批处理仅处理一级目录,不处理二级目录
set str=%~dp0
echo. & set /p \"str=请输入文件所在路径,直接回车则默认批处理所在目录:\"
echo. & set /p \"lap=请输入文件类型(例如:*.txt):\"
echo. & set /p \"str1=请输入开始的字符:\"
echo. & set /p \"str2=请输入结束的字符:\"
cd /d %str%
for /f \"delims=\" %%a in (\'dir /b %lap%\') do (
    set stm=%%~na
    setlocal enabledelayedexpansion
    for /f \"tokens=2 delims=%str1%%str2%\" %%i in (\"!stm!\") do (
        if \"%%i\" EQU \"\" (
            echo. & echo 您输入的开始字符和结束字符紧挨着,或开始字符与结束字符相同,请重新输入
        ) 
        if \"%%i\" NEQ \"!stm!\" (
        ren \"%%a\" \"%%i%%~xa\"
        )
    )
    endlocal
)
echo. & echo 已完成。。。。
goto MM
 
:GG
echo. & echo 您选择的是:批量修改文件名,仅保留特定字符之间的字符串为名字(特定字符也保留),其它字符串删除
echo. & echo 本批处理仅处理一级目录,不处理二级目录
set str=%~dp0
echo. & set /p \"str=请输入文件所在路径,直接回车则默认批处理所在目录:\"
echo. & set /p \"lap=请输入文件类型(例如:*.txt):\"
echo. & set /p \"str1=请输入开始的字符:\"
echo. & set /p \"str2=请输入结束的字符:\"
cd /d %str%
for /f \"delims=\" %%a in (\'dir /b %lap%\') do (
    set stm=%%~na
    setlocal enabledelayedexpansion
    for /f \"tokens=2 delims=%str1%%str2%\" %%i in (\"!stm!\") do (
        if \"%%i\" EQU \"\" (
            echo. & echo 您输入的开始字符和结束字符紧挨着,或开始字符与结束字符相同,请重新输入
        ) 
        if \"%%i\" NEQ \"!stm!\" (
        ren \"%%a\" \"%str1%%%i%str2%%%~xa\"
        )
    )
    endlocal
)
echo. & echo 已完成。。。。
goto MM

以上代码保存为ANSI编码的bat后缀名文件,管理员身份运行!有兴趣的可以试试!

给TA打赏
共{{data.count}}人
人已打赏
服务器教程

LNMP的默认default网站绑定域名访问403的解决办法

2021-4-17 19:15:28

服务器教程

如何给电脑开启RDP远程访问服务?如何使用空密码可以远程登录?

2021-4-17 19:15:30

声明 本站上的部份代码及教程来源于互联网,仅供网友学习交流,若您喜欢本文可附上原文链接随意转载。无意侵害您的权益,请发送邮件至 [email protected] 或点击右侧 私信:吉吉国王 反馈,我们将尽快处理。
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
OneEase