用批处理编写txt字符替换
我想将TXT文本里面的某一数值自动替换成另外一个,例如将1.txt里面abc自动替换成xyz,要求用批处理,最好可以实现批量和指定TXT两种方式!...
我想将TXT文本里面的某一数值自动替换成另外一个,例如将1.txt里面abc自动替换成xyz,要求用批处理,最好可以实现批量和指定TXT两种方式!
展开
2个回答
展开全部
1、指定txt,以1.txt为例
@echo off
setlocal enabledelayedexpansion
del 2.txt 2>nul
ren 1.txt 2.txt
for /f "tokens=*" %%i in (2.txt) do (
set s=%%i
set s=!s:abc=xyz!
echo s>>1.txt
)
2、批量,以批处理所在文件夹为例
@echo off
setlocal enabledelayedexpansion
del temp.txt 2>nul
for /f %%a in ('dir/b *.txt') do (
ren "%%a" temp.txt
for /f "tokens=*" %%i in (temp.txt) do (
set s=%%i
set s=!s:abc=xyz!
echo s>>"%%a"
)
del temp.txt
)
@echo off
setlocal enabledelayedexpansion
del 2.txt 2>nul
ren 1.txt 2.txt
for /f "tokens=*" %%i in (2.txt) do (
set s=%%i
set s=!s:abc=xyz!
echo s>>1.txt
)
2、批量,以批处理所在文件夹为例
@echo off
setlocal enabledelayedexpansion
del temp.txt 2>nul
for /f %%a in ('dir/b *.txt') do (
ren "%%a" temp.txt
for /f "tokens=*" %%i in (temp.txt) do (
set s=%%i
set s=!s:abc=xyz!
echo s>>"%%a"
)
del temp.txt
)
追问
第一个指定能不能手动输入TXT文件名,或者能直接拖进去?
第二个能不能指定具体目录里面的所有txt批量处理?
这两个都能自动覆盖保存,就是保存源文件,不另生成新文件
追答
1、
@echo off
setlocal enabledelayedexpansion
set fn=%1
if "%fn%"=="" set /p fn=请输入文件名
del 2.txt 2>nul
ren %fn% 2.txt
for /f "tokens=*" %%i in (2.txt) do (
set s=%%i
set s=!s:abc=xyz!
echo s>>1.txt
)
2、
@echo off
setlocal enabledelayedexpansion
:dd
set /p d=请输入文件夹名
if not exist %d% goto dd
pushd %d%
del temp.txt 2>nul
for /f %%a in ('dir/b *.txt') do (
ren "%%a" temp.txt
for /f "tokens=*" %%i in (temp.txt) do (
set s=%%i
set s=!s:abc=xyz!
echo s>>"%%a"
)
del temp.txt
)
popd
pause
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询