发布网友 发布时间:2022-04-24 16:53
共3个回答
热心网友 时间:2023-10-23 23:36
@ECHO OFF
set batchName=批量重命名-替换文件或者文件夹的字符串
TITLE
忆林子--%batchName%
rem
[HEAD========================================================HEAD]
rem
名称:批量重命名
rem 作者:忆林子
rem 概要:批量替换文件或者文件夹的字符串
rem 用法:
rem
1、将需要批量重命名的文件所在的那个文件夹拖到该处理上
rem 2、按提示输入要替换的字符串,然后按回车。
rem
3、按提示输入想要替换为的字符串,然后按回车。
rem
rem 考虑到多次操作,该批处理加了循环操作处理,可进行多次替换,而不
rem
需要多次拖文件夹。
rem
rem 修正履历
rem 修改者 修正方式 版本号 备考
rem
[MID==========================================================MID]
rem 忆林子 新建
Ver.2010.03.06-001
rem
[FOOT========================================================FOOT]
COLOR
0a
:main
set /a count=%count%+1
set /p oldStr=[请输入想要替换的字符串]
set /p
newStr=[请输替换后的字符串]
for /f "tokens=*" %%a in (
'dir "%~1" /a /b'
) do
(
SETLOCAL ENABLEDELAYEDEXPANSION
set "newFileName=%%~nxa"
set
"newFileName=!newFileName:%oldStr%=%newStr%!"
ren "%~1\%%~nxa"
"!newFileName!"
ENDLOCAL
)
ECHO.
echo 第 %count%
次替换已完成
ECHO.
goto :main
EXIT
用法参照以下说明
热心网友 时间:2023-10-23 23:36
不用ren你想如何改文件名
ren很简单,为啥不用追问是批量更改。 一个D盘有N个文件我总不能一个一个去改吧!
热心网友 时间:2023-10-23 23:37
只是更改文本内的,还是对文件也改名?追问额,是把D盘下的所有文件路径写入data.txt 然后读取data.txt内的路径 把文本内的第一条路径的文件重命名为1.xxx 第二条重命名为2.xxx ...
以上操作完成后关键的是怎么把1.xxx 重命名回原来的文件名 (data.txt 还在的)。
追答
OK,明白了。代码如下:
@echo off&setlocal EnableDelayedExpansion