批处理问题——怎么替换文本中的字符

把一文本中所有的=换成字母a必须用脚本,最好批处理,VBS也行... 把一文本中所有的=换成字母a
必须用脚本,最好批处理,VBS也行
展开
 我来答
迷茫之雁
2010-05-18 · TA获得超过196个赞
知道小有建树答主
回答量:145
采纳率:0%
帮助的人:0
展开全部
用批处理很有难度,因为不能用:s=!s:==a!。
而用vbs就简单多了。
vbs:

On Error Resume Next
Dim Fso,TxtFl,Str
Set Fso = CreateObject("Scripting.FileSystemObject")
Set TxtFl = Fso.OpenTextFile ("1.txt",1)
Str = Replace ( TxtFl.ReadAll,"=","a")
Set TxtFl = Fso.OpenTextFile ("1.txt",2)
TxtFl.Write Str
TxtFl.Close

下面的批处理只能替换单独的“=”号为“a”。
批处理:

@echo off >tmp.txt
for /f "tokens=1* delims=:" %%i in ('findstr /n ".*" 1.txt') do (
if "%%j"=="" (echo.>>tmp.txt) else (
call set "tp=%%j"&call :loop&call echo %%str%%>>tmp.txt)
)
copy tmp.txt 1.txt /y >nul
del tmp.txt
start 1.txt
exit
:loop
set "str="
set "fs=%tp:~,1%"&set "ls=%tp:~-1%"
if "%fs%"=="=" set "tp=a%tp:~1%"
if "%ls%"=="=" set "tp=%tp:~,-1%a"
:lp
for /f "tokens=1* delims==" %%1 in ("%tp%") do (
if not "%%2"=="" (
call set "str=%%str%%%%1a"
call set "tp=%%2"
goto lp
))
set "str=%str%%tp%"
goto :eof
匿名用户
2010-05-18
展开全部
用Word打开撒~里面有个查找与替换功能的 直接查找= 替换 a 就Ok了撒
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lidajiangzw
2010-05-18 · TA获得超过903个赞
知道小有建树答主
回答量:774
采纳率:0%
帮助的人:721万
展开全部
批处理代码如下
@echo off
setlocal ENABLEDELAYEDEXPANSION
cd /d "%~dp1"
echo %~nx1
for /f "tokens=*" %%i in ('type "%~nx1"') do (
set "str=%%i"
set str=!str:==a!
echo !str!>>temp.txt
)
pause

把要处理的文件的图标 拖到这个批处理文件的图标上就可以了,替换的文件在
你处理的文件的同一个目录下生成 temp.txt
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式