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

来源:百度知道 编辑:UC知道 时间:2024/05/22 18:28:28
我现在需要一个批处理,用来批量修改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

@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

直接替换是不行的,除非借助第三方工具,不过可以生成临时文件,然后替换原来的文件即可。

楼主,看看我的:

@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 &qu