这几天,有个同事需要一个批量替换txt文件内容的程序,叫我弄一个给他,但是动手写.c#程序,又有点懒,于是打算用dos脚本来编写,顺便学学dos脚本的编程。
先上网搜索了一个一段程序如下:
@echo off
setlocal enabledelayedexpansion
set file=
set /p file= 请输入要操作的文件名称(包括扩展名):
set "file=%file:"=%"
for %%i in ("%file%") do set file=%%~fi
echo.
set replaced=
set /p replaced= 请输入即将被替换的内容:
echo.
set all=
set /p all= 请输入替换字符串:
for /f "delims=" %%i in ('type "%file%"') do (
set str=%%i
set "str=!str:%replaced%=%all%!"
echo !str!>>"%file%"_tmp.txt
)
copy "%file%" "%file%"_bak.txt >nul 2>nul
move "%file%"_tmp.txt "%file%"
start "" "%file%"
一开始看的一头雾水,就直接先拿来用了,将他考到文本中,文件后缀改成.cmd就可以用了,我起的名字是1.cmd。直接点击1.cmd,需要如下三个步骤:
a.显示“请输入要操作的文件名称(包括扩展名):”,然后我直接输入当前文件的名字“1.cmd”,回车
b.显示“请输入即将被替换的内容:”,然后我输入:"请输入要操作的文件名称(包括扩展名)".
c.显示“请输入替换字符串”,然后输入:“绿树,请输入你的文件名称”。
我的这三个步骤目的是为了将1.cmd的第一个提示“请输入要操作的文件名称(包括扩展名):”改成“绿树,请输入你的文件名称”。第三步一回车,还真行了,又弹出一个新的dos界面,输出“绿树,请输入你的文件名称”。如果看不懂,就亲自试试吧,很容易的。
会是会用了,但是还是不符合功能,我那个同事需要的是批量将所有文件中同一种字符替换掉,最后还是要看代码,添加写新的代码进去。
转发至微博
转发至微博
评论