用批处理编写txt字符替换

我想将TXT文本里面的某一数值自动替换成另外一个,例如将1.txt里面abc自动替换成xyz,要求用批处理,最好可以实现批量和指定TXT两种方式!... 我想将TXT文本里面的某一数值自动替换成另外一个,例如将1.txt里面abc自动替换成xyz,要求用批处理,最好可以实现批量和指定TXT两种方式! 展开
 我来答
sudoku52
推荐于2016-05-15 · TA获得超过7万个赞
知道大有可为答主
回答量:1.2万
采纳率:82%
帮助的人:4925万
展开全部
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
)
追问
第一个指定能不能手动输入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
完美又温文尔雅的小柠檬1995
2011-09-13 · TA获得超过590个赞
知道答主
回答量:266
采纳率:0%
帮助的人:126万
展开全部

@echo off
for /f "tokens=1* delims=/" %%a in (a.txt) do echo /%%a*%%b>>a.tmp
ren a.txt a.txt.bak
ren a.tmp a.txt
exit
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式