
怎样用批处理直接修改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 展开
@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
直接替换是不行的,除非借助第三方工具,不过可以生成临时文件,然后替换原来的文件即可。
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 "%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
@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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询