如何用bat批量替换文件名称? 5
我有一批文件名称为SalesWareHouseOut_902015090601.xml,需要修改为PurchaseWareHouseIn_902015090601.xml...
我有一批文件名称为SalesWareHouseOut_902015090601.xml,需要修改为PurchaseWareHouseIn_902015090601.xml,同时需要把文件里面的内容有SalesWareHouseOut的全部修改为PurchaseWareHouseIn,而且把HouseOut全部修改为HouseIn.
展开
2个回答
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运行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
@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
如果你说的是一批文件时指文件名后面的数字不一样的话,那么就是这样了
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
如果你说的是一批文件时指文件名后面的数字不一样的话,那么就是这样了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询