如何用bat批量替换文件名称? 5

我有一批文件名称为SalesWareHouseOut_902015090601.xml,需要修改为PurchaseWareHouseIn_902015090601.xml... 我有一批文件名称为SalesWareHouseOut_902015090601.xml,需要修改为PurchaseWareHouseIn_902015090601.xml,同时需要把文件里面的内容有SalesWareHouseOut的全部修改为PurchaseWareHouseIn,而且把HouseOut全部修改为HouseIn. 展开
 我来答
匿名用户
2015-09-11
展开全部
@echo off
color f9
if exist xml_list.txt del /s xml_list.txt >nul
for /f "delims=" %%i in ('dir /a-d/b *.xml') do (echo %%i>>xml_list.txt)
set line=0
for /f "delims=" %%j in (xml_list.txt) do set /a line+=1
set /a filenum= %line%-1
set nn=-1
:renameloop
set /a nn=nn+1
if "%nn%"=="0" (set "skip=") else (set "skip=skip=%nn%")
for /f "%skip% tokens=* delims="  %%i in (xml_list.txt) do (
set aa=%%i&&goto:choose)
:choose
for /f "tokens=2 delims=_" %%a in ("%aa%") do set rename_bef=%%a
set "rename=PurchaseWareHouseIn_%rename_bef%"
ren %aa% %rename%
wfr %rename%  -r:"SalesWareHouseOut" -t:"PurchaseWareHouseIn"
if  "%nn%" == "%filenum%"   goto renameend
goto renameloop
:renameend
del /s xml_list.txt >nul


刚才的有个问题“如何通过一个Bat文件实现替换记事本里面的一些文字”也是你提的把,上面代码同样需要配合wfr.exe运行



已赞过 已踩过<
你对这个回答的评价是?
评论 收起
四开飞子
2015-09-11 · TA获得超过101个赞
知道小有建树答主
回答量:116
采纳率:0%
帮助的人:48.1万
展开全部
@echo off&setlocal enabledelayedexpansion
for %%i in (./SalesWareHouseOut_*.xml) do (
set name=%%i
set name=!name:SalesWareHouseOut=PurchaseWareHouseIn!
for /f "delims=" %%a in (%%i) do (
set aa=%%a
set aa=!aa:SalesWareHouseOut=PurchaseWareHouseIn!
del /q /s !name! 1>nul 2>nul
if "!aa!" neq "" echo !aa!>>.\!name!)
)
pause
::for /f 是拿文件内容
::for %%i 是拿文件名
::del /q /s %%i 1>nul 2>nul
如果你说的是一批文件时指文件名后面的数字不一样的话,那么就是这样了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式