能否提供一个BAT批处理,修改一个文件夹内的所有TXT文件的文件名,文件名不统一,并修改TXT文档第一行文字

能否提供一个BAT批处理,修改一个文件夹内的所有TXT文件的文件名,文件名不统一,并修改TXT文档第一行文字,例如:
文件夹内有三个TXT文件:111.TXT 222.TXT 333.TXT
对应111文件内第一行文字为“要处理文件 111”......222和333文件与111文件对应
将文件名111改为一一一、222改为二二二、三三三改为三三三
将111文件第一行文字改为“要处理文件 一一一”.......222和333相对应。
感谢各位大侠,帮帮忙。

@echo off&setlocal EnableDelayedExpansion
for /f "tokens=*" %%a in ('dir /b *.txt') do (set "n=%%~na"
call :num2hz "!n!" hzf
set h=0
for /f "tokens=*" %%t in (%%a) do (set "m=%%t"
set /a h+=1
if !h! EQU 1 (call :num2hz "!m!" hzt
set hzt=!hzt:^"=!
echo !hzt!>!hzf!.txt) else (echo %%t>>!hzf!.txt)
::如果校验没问题,请把下面一行的 echo 删掉再运行(以便删除源文件)
echo del /f /q %%a)
goto :EOF

:num2hz %1 %2
set x=%1
set x=%x:1=一%
set x=%x:2=二%
set x=%x:3=三%
set x=%x:4=四%
set x=%x:5=五%
set x=%x:6=六%
set x=%x:7=七%
set x=%x:8=八%
set x=%x:9=九%
set x=%x:0=零%
set %2=%x%
goto :EOF
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-10
不知道1楼hnsz2k的bat会不会把txt里面所有的1都替换成一???,还是仅能保存最后一行

@echo off
setlocal EnableDelayedExpansion
for /f "tokens=*" %%i in ('dir/b *.txt') do (
set f=%%~ni
set f=%f:1=一%
set f=%f:2=二%
set f=%f:3=三%
set f=%f:4=四%
set f=%f:5=五%
set f=%f:6=六%
set f=%f:7=七%
set f=%f:8=八%
set f=%f:9=九%
set f=%f:0=零%
echo 要处理文件 !f!>!f!.txt
more +1 "%%i">>!f!.txt
del "%%i")本回答被网友采纳
相似回答