[批处理求助 急求!]: 关于BAT批量重命名与恢复。

发布网友 发布时间: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
if exist "C:\data.txt" del "C:\data.txt"
cd /d D:\
for /f "delims=" %%a in ('dir /a-d/s/b/on') do (
set /a n+=1
ren "%%~a" "!n!%%~xa"
echo %%~a^|%%~dpa!n!%%~xa>>C:\data.txt
)
echo 文件名已按数字顺序命名。按下任意键后,将恢复原文件名。
pause>nul
for /f "tokens=1,2* delims=|" %%a in (C:\data.txt) do ren "%%~b" "%%~nxa"
pause

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com