cmd 批量重命名文件且对原文件名进行修改

批量处理文件名,只改文件中的部分名称

我想去掉的部分是: "ic_", 如果有其他要求,也可以。

@echo off&setlocal EnableDelayedExpansion
color 0a
echo %date% %time%
echo rename file now......
set a=1
for /f "delims=" %%i in ('dir /b *.xml') do (
     set "str=%%~nxi"
     set "shortstr=!str:~3!"
	 set  "replacestr=!shortstr:_=-!"
     echo !replacestr!
	 ren "%%i"  "!replacestr!"
        set /a a+=1
    )
)
set /a a-=1
echo rename finish,rename count:%a%。
pause

说明一下:

可以看到,我是从第三位开始保留的,如果想从第三位保留到第7位,可以替换成  set "shortstr=!str:~3,7!"

这样改完后,后面的文件名称后缀要手动加上了。  ren "%%i"  "!replacestr!.xml"

@echo off&setlocal EnableDelayedExpansion
color 0a
echo %date% %time%
echo rename file now......
set a=1
for /f "delims=" %%i in ('dir /b *.文件后缀') do (
     set "str=%%~nxi"
     set "shortstr=!str:~0!"	       //这里~表示从第几位开始截取名称,~3表示从第三位开始截取 ~3,7表示从第三位截取到第七位
	 set  "replacestr=!shortstr:-=_!"  //这里是将 - 改成了 _
     echo !replacestr!
	 ren "%%i"  "!replacestr!"
        set /a a+=1
    )
)
set /a a-=1
echo rename finish,rename count:%a%。
pause

还有一个文件名字符串替换的方法

@echo off
title replace Name
echo click repace
echo.

echo.
echo 正在替换文件(文件夹)名……
for /f "delims=" %%a in ('dir /s /b ^|sort /+65535') do (
if "%%~nxa" neq "%~nx0" (
set "file=%%a"
set "name=%%~na"
set "extension=%%~xa"
call set "name=%%name:%被替换的字符串不要加引号%要替换成的字符串%_%%%"
setlocal enabledelayedexpansion
ren "!file!" "!name!!extension!" 2>nul
endlocal
)
)
echo 完成
pause

照搬这个兄弟的:

https://blog.csdn.net/zzq900503/article/details/49099467

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值