Bat如何替换文件内容?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Bat如何替换文件内容?相关的知识,希望对你有一定的参考价值。

比如有个文件1.txt
内容是
789
123456789
789
如何在1.txt中将全部的789替换成AAA
我想要批处理 Bat文件,因为我要修改好多txt中的内容。

@echo off
setlocal enabledelayedexpansion
set fn=1.txt
(for /f "tokens=*" %%i in (%fn%) do (
set s=%%i
set s=!s:789=AAA!
echo !s!))>temp.txt
move /y temp.txt "%fn%"

如果修改当前目录下所有txt
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('dir/b *.txt') do (
(for /f "tokens=*" %%i in (%%a) do (
set s=%%i
set s=!s:789=AAA!
echo !s!))>temp.txt
move /y temp.txt "%%a" )

如果可以用第三方工具的话,推荐国产高手白杨的wfr,命令非常简单

wfr 1.txt -r:"789" -t:"AAA"
替换所有txt
wfr *.txt -r:"789" -t:"AAA"
参考技术A 方法/步骤

1、桌面点右键新建一个好压文件 双击打开后。

2、点击好压界面上的工具箱 选择里面的批量字符替换工具打开。
3、选择你要修改的文件类型。
4、点击文件类型右边的箭头可以查看软件支持哪些类型的文件。
5、点击文件目录右边的浏览 选择你要修改的文件所在目录。
6、注意包含子目录和包含压缩包内文件是否勾选,还可以选择备份源文件 避免修改错误。
7、输入你需要替换的旧字符 和 用来替换旧字符的新字符 如果字符中有字母还可以选择区分大小写。

8、比如我需要将桌面“ 测试” 这个文件夹中的所有(包括子目录)TXT文档中的“ 123” 修改成 “我是”按下图设置好后点替换即可 很快就会提示替换成功。
参考技术B 查找设成789
替换设成AAA

然后全部替换追问

我想要批处理 Bat文件,因为我要修改好多txt中的内容。

追答

有软件可以做到,你搜一下

追问

我只想要bat,因为这是我要写的bat文件中的其中一步,就差这一步就搞定了。
虽然你的回答帮不到我,但是还是要谢谢你的热心~~

追答

http://zhidao.baidu.com/question/286203392.html

bat如何解决文件名里有空格

最近给一件歌曲编号,朋友说可以用ren来搞。试了一下果然不错 但文件名中有空格的却无法识别。比如英文歌曲。 ren a b.mp3 001a b.mp3. ab这之间有个空格。谢谢

批量去除文件名中的空格:

步骤1,安装并打开下图软件工具,点击软件左上角的【添加文件】蓝色按钮,将需要修改名称的文件批量添加到软件中。


步骤2,这时候在左边可以看到设置窗口,命名方式选择“替换”;在查找内容右边的方框内输入一个空格。其他都不用设置了,这时候在右边可以预览到新文件名中已经没有了空格。


步骤3,确认无误后就点击右上角的【开始重命名】按钮,启动软件程序,当弹出“重命名成功”的提示框说明批量处理完成了。


步骤4,打开查看处理后的文件可以看到,所有文件名中已经没有了空格。

参考技术A @echo off
color f2
echo 我可以将【文件夹】目录及子目录[去除文件名空格]整理到-目录表格.xls
pause 
:--------------------------------------
setlocal enabledelayedexpansion
:--------------------------------------
for /f "tokens=*" %%j in ('dir/b') do (
set fn=%%j
echo 替换前:!fn!
set fn=!fn: =!
echo 替换后:!fn!
:将fn字符串中的每一个空格(" ")替换成空字符("")。
ren "%%j" !fn!
)
:--------------------------------------
set pp=%~dp0
echo %pp%
:--------------------------------------
for /d /r . %%i in (*) do (

:更新路径,将有空格的路径改为除去空格后的路径,才能进入
for /f "tokens=*" %%l in (!i!) do (
set pt=%%l
set pt=!pt: =!
set i=!pt!
)
echo 路径 %%i
cd %%i
:-------------------
for /f "tokens=*" %%j in ('dir/b') do (
set fn=%%j
echo !fn!
set fn=!fn: =!
echo !fn!
:将fn字符串中的每一个“ ”替换成“”空字符。
ren "%%j" !fn!
)
)
:--------------------------------------
cd %pp%
echo %pp%
for /d /r . %%k in (*) do echo %%k>>目录表格.xls
echo 已经将文件夹目录(不包括文件)生成到【目录表格.xls】
echo 如果希望更多bat功能可以发邮件给:973490770@qq.com
pause

参考技术B 有空格的在文件名前后添加英文的双引号即可,例如:
ren “a b.mp3” “001a b.mp3”本回答被提问者采纳

以上是关于Bat如何替换文件内容?的主要内容,如果未能解决你的问题,请参考以下文章

怎么用bat把多行的内容替换?

Python脚本批量给文件添加内容

bat批处理:A.txt文件的内容替换B.txt文件里面所有的out文字?

如何用bat文件查找并修改文本的内容?

求教如何命令 替换 SQLite软件 文件中的N批量改成Y

bat替换文本字符串!