怎样用批处理直接修改ini文件的内容?

我现在需要一个批处理,用来批量修改ini文件中的内容,比如把字符串aaa替换成bbb,我写了一个能够替换字符串了,但是却把替换后的所有文本又输出了一遍在原来的文本下边。比... 我现在需要一个批处理,用来批量修改ini文件中的内容,比如把字符串aaa替换成bbb,我写了一个能够替换字符串了,但是却把替换后的所有文本又输出了一遍在原来的文本下边。比如说原来的文本是aaaccc替换后成了aaacccbbbccc。有没有方法能够直接在原来的文本基础上直接把aaa改成bbb,而不再重新输出一遍了呢?期待高手回答。
@echo off&setlocal EnableDelayedExpansion
for /r .\Batch %%i in (*.ini) do (for /F "delims=" %%b IN (%%i) DO (set "str=%%b"&set "str=!str:aaa=bbb!"
echo !str! >>%%i))
pause
展开
 我来答
千羽之城
2009-08-29 · TA获得超过4510个赞
知道大有可为答主
回答量:2132
采纳率:0%
帮助的人:1464万
展开全部
@echo off&setlocal enabledelayedexpansion
cd /d .\batch
for /f "delims=" %%i in ('dir /s/b *.ini') do (
for /f "delims=" %%a in ('type %%i') do (
set "str=%%a"
set str=!str:aaa=bbb!
echo !str!
)>>"%%i_"
move "%%i_" "%%i"
)
exit

直接替换是不行的,除非借助第三方工具,不过可以生成临时文件,然后替换原来的文件即可。
睿之锐
2009-08-29 · TA获得超过1269个赞
知道小有建树答主
回答量:809
采纳率:0%
帮助的人:492万
展开全部
楼主,看看我的:

@echo off&setlocal Enabledelayedexpansion
set /p file=请把你要处理的文本文件拖到本窗口:&set "file=!file:"=!"
FOR %%A IN ("%file%") DO set G=%%~dpA&set T=%%~nA&set K=%%~xA&set P=%%~nxA
if exist "%G%temp.txt" del /q /f /a "%G%temp.txt"
attrib "%file%" -s -h -r
for /f "delims=" %%a in ('type "%file%"') do (
set var=%%a
set "var=!var:aaa=bbb!"
echo !var!>>"%G%temp.txt"
)
ren "%file%" "%T%【%random%】%K%"
ren "%G%temp.txt" "%P%"
start "" "%file%"&exit

测试文本内容:

我现在需要一个批处理,用来批量修改ini文件中的内容,比如把字符串aaa替换成bbb,我写了一个能够替换字符串了,但是却把替换后的所有文本又输出了一遍在原来的文本下边。比如说原来的文本是aaaccc替换后成了aaacccbbbccc。有没有方法能够直接在原来的文本基础上直接把aaa改成bbb,而不再重新输出一遍了呢?期待高手回答。
@echo off&setlocal EnableDelayedExpansion
for /r .\Batch %%i in (*.ini) do (for /F "delims=" %%b IN (%%i) DO (set "str=%%b"&set "str=!str:aaa=bbb!"
echo !str! >>%%i))
pause
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式